自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大白菜的博客

小白一枚,嵌入式学习者

  • 博客(32)
  • 收藏
  • 关注

原创 基于qt 网络图像传输,图像处理结果回传

本人电子专业研究生毕业,挣点零花钱,承接毕业设计或者课题项目,涉及树莓派,图像识别、视频传输、python语音识别、esp32单片机、qt界面、python、嵌入式Linux。有兴趣可以联系我:15555360357左边,一个发送端,采集usb摄像头数据右边,一个接收端,可以做opencv算法处理,并回传结果。此外,发送端可以运行在树莓派端。演示的就是做了一个opencv的canny算子,其他算法也是一样的,只要在服务器端做自己需要的算法即可,不卡顿。

2022-10-10 15:37:31 1167 1

原创 如何使用MQTT跨越公网通信?

主题:如何使用MQTT跨越公网通信?实现方式:imx6ull通MQTT连接腾讯云ubuntu18.04硬件:正点原子imx6ull开发板编译环境:本地电脑,ubuntu20.04测试环境:腾讯云,ubuntu18.04开发前提:imx6ull已经通过nfs挂载本地开发ubuntu里的文件系统(目的是方便调试,不必每次都下载代码进emmc或nand)搭建MQTT库过程记录:下载mosquitto库,点击下载源码交叉编译mosquitto库vim config.mk找到 WITH_TLS和W

2021-08-29 23:50:25 1620

原创 基于macbook M1搭建图像分析环境

1.前言最近苹果公司发布新款产品,搭载 arm64 架构的处理器????,作为嵌入式小白,必须要搞一款来玩玩,在上面跑跑图像处理(按理来说其实跟树莓派是差不多的,相对来说树莓派还是太小众,很多库和软件都来不及适配,那可能有人说了苹果发布的arm64咋可以呢,谁让苹果公司big呢。。。)2.配置概要既然是做图像相关的分析,那么opencv是必须的啦,很多人可能就不服气啦,大名鼎鼎的MATLAB分析什么都厉害,当然也难不倒图像分析,可MATLAB那玩意俺不会用,,,【据说很简单】,其次是macOS

2021-01-06 19:55:45 2844 2

原创 IMX6ULL系列学习记录-移植qt5.6.0

主题:IMX6ULL系列学习记录-移植qt5.6.0硬件平台:野火IMX6ULLPC系统:ubuntu19.04交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihfU-Boot:uboot-imx-rel_imx_4.1.15_2.1.0_gakernel:linux-imx-rel_imx_4.1.15_2.1.0_gad...

2020-02-27 16:50:00 858 1

原创 主题:s3c2440移植u-boot-2012.04版本中关于支持nand flash功能

编译系统 :ubuntu 16.04硬件平台 :jz2240交叉编译器:arm-linux-gcc 4.3.2再移植完nor flash 之后,发现u-boot还不支持nand flash,串口打印为 :nand_get_flash_type: second ID read did not match 0e,ec against 0b,0bNo NAND device ...

2020-01-09 11:07:10 205

原创 主题:s3c2440移植linux-3.4.2中的LCD驱动

编译系统:ubuntu16.04硬件平台 :jz2240交叉编译器:arm-linux-gcc 4.3.2最近在做s3c2440的linux系统和驱动移植,遇到了LCD驱动,算是比较难的,所以写个博客记录一下。废话不多说,进入主题:linux3.4.2内核中本身就带有LCD驱动,但驱动是三星公司的LCD,并不适合我这块开发板。因此,准备移植一下,让驱动来支持我的LCD。下面按照...

2020-01-09 11:07:07 674

原创 主题:针对s3c2440平台实现的Linux-3.4.2内核中nand flash驱动

硬件平台:s3c2440内核版本:Linux3.4.2 最近在做s5pv210的nand flash移植时发现以前看过的关于在s3c2440平台下的nand flash驱动框架都忘了,这次准备再次看一遍。从mach-mini2440.c中文件看起。找到这些platform_device数组,实际就每一个外设接口。很容易看到 &s3c_device_nand。static...

2020-01-09 11:06:54 235

原创 主题:Linux系统中input子系统剖析

编译系统 :ubuntu 16.04内 核 :linux-2.6.22.6硬件平台 :jz2240交叉编译器:arm-linux-gcc 3.4.5 Linux系统必须具备处理外部事件的能力,首先得有完善的输入设备驱动,典型的输入设备如:按键,键盘,触摸屏,鼠标等都是常用的输入设备。但是每种设备都有其独特的特性。为此,linux系统中设计了Inp...

2020-01-09 11:06:39 154

原创 主题:基于linux-2.6.22.6内核的中断系统分析与实现

编译系统 :ubuntu 16.04内 核 :linux-2.6.22.6硬件平台 :jz2240交叉编译器:arm-linux-gcc 3.4.5首先分析一下linux内核中断系统框架:我们知道cpu在接收到外部中断之后,会自动跳转到异常向量表中找到中断向量再开始执行对应的中断。_start: /* 建立异常向量表 */ b reset ...

2020-01-09 11:06:21 227

原创 IMX6ULL系列学习记录-uboot\zImage dtb\rootfs烧入SD卡

主题:IX6ULL 系统烧录记录(参考官方文档i.MX_Linux_User's_Guide)硬件平台:野火IMX6ULL软件:ubuntu19.04交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihfU-Boot:uboot-imx-rel_imx_4.1.15_2.1.0_gakernel: linux-imx...

2020-01-09 11:05:33 1792

原创 主题:详细分析linux内核中vivv.c驱动摄像头驱动

最近学习了v4l2(video for linux two),主要是关于linux中对视频(还有其他)方面的支持。这里就分析一下内核自带的vivi.c文件,因为完全是虚拟的不涉及任何物理硬件(摄像头等),所以适合分析和了解整个v4l2框架和流程。说明:1)/* */ 为代码注释,很多时候,有一些函数比较复杂,我就在调用函数后面加上函数的实现2)后一行比前一行缩进 代表后一行是在前一个...

2019-12-24 11:21:41 628

原创 IMX6ULL系列学习记录-Uboot篇

主题:IX6ULL U-boot移植记录(参考官方文档i.MX_BSP_Porting_Guide)硬件平台:野火IMX6ULL软件:ubuntu19.04交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihfU-Boot:uboot-imx-rel_imx_4.1.15_2.1.0_gakernel:linux-i...

2019-12-24 11:20:34 6067 1

原创 IMX6ULL系列学习记录-kernel篇

主题:IX6ULL kernel移植记录(参考官方文档i.MX_BSP_Porting_Guide)硬件平台:野火IMX6ULL软件:ubuntu19.04交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihfU-Boot:uboot-imx-rel_imx_4.1.15_2.1.0_gakernel:linux-i...

2019-12-24 11:20:25 2003

原创 IMX6ULL系列学习记录-sii902x移植篇

主题:IX6ULL sii902x移植记录(参考官方文档Sii9022a HDMI transmitter driver)硬件平台:野火IMX6ULL软件:ubuntu19.04交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihfU-Boot:uboot-imx-rel_imx_4.1.15_2.1.0_gaker...

2019-12-24 11:20:14 4708 4

原创 IMX6ULL系列学习记录-使用busybox1.31.1制作最简根文件系统

主题:IMX6ULL系列学习记录-使用busybox1.31.1制作根文件系统硬件平台:野火IMX6ULL软件:ubuntu19.04交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihfU-Boot:uboot-imx-rel_imx_4.1.15_2.1.0_gakernel:linux-imx-rel_imx_4.1.15...

2019-12-24 11:20:04 2429 1

原创 IMX6ULL系列学习记录-移植Opencv3.4.5

主题:IMX6ULL系列学习记录-移植Opencv3.4.5硬件平台:野火IMX6ULLPC系统:ubuntu19.04交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihfU-Boot:uboot-imx-rel_imx_4.1.15_2.1.0_gakernel:linux-imx-rel_imx_4.1.15_2.1.0_...

2019-12-24 11:19:43 946 1

原创 主题:linux驱动之异步通知

最近今天是2018-12-31日,即将跨年,希望在2018年最后的几个小时内对今天的东西进行一次总结。编译系统 :ubuntu 16.04内 核 :linux-2.6.22.6硬件平台 :jz2240交叉编译器:arm-linux-gcc 3.4.5我们知道,读取一个按键状态有几种方法。轮询方式,用一个死循环一直读按键状态。 采样中断方式,有按键就...

2019-12-18 10:01:35 156

原创 面试基础算法之快速排序

根据百度百科解释,插入排序算法的原理如下: 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 用通俗的语言解释 首先在数组中选择一个基准点,然后分别从数组的两端扫描数组,设两个指示标志low指向起始位置,high指向末尾,先从...

2019-09-09 15:18:48 252

原创 面试基础算法之插入排序

根据百度百科解释,插入排序算法的原理如下: 如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分...

2019-09-03 16:58:25 133

原创 面试基础算法之选择排序

根据百度百科解释,选择排序算法的原理如下: 选择排序的工作原理是:第一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 用通俗的语言解释:对于一个含有10个元素的数组,需要进行9次遍历。第一次遍历从第一个元素开始找到一个最小的元...

2019-09-03 16:56:26 189

原创 面试基础算法之冒泡排序

根据百度百科解释,冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。用通俗语言解释一下,可能会很俗。大致原理是,比如说...

2019-09-03 11:38:27 186

原创 多进程间使用信号通信

目录:一、实现功能:两个进程间交替打印数字二、多进程创建方式三、进程间通信方式四、代码实现一、实现功能:在两个进程间采用信号的方式进行通信,实现父子进程交替依次增加的方式打印数字。二、linux系统中可以使用fork()函数创建一个子进程,fork()函数会返回两次,一个是子进程的pid号,还有一个是0。所以,可以通过判断返回值来区分父子进程。三、多进程间通信方式有多种...

2019-08-27 09:56:01 1290 1

原创 (Python编程从入门到实践)第五章 if 语句

无论在什么场合下,无论在任何编程语言中,条件判断和循环都是必不可少的。本章较为简单,很快就学完啦!if条件测试​​​​​​​if在判断字符串是否相等时,会区别大小写,也就是大小写是不同的if判断可用于判断字符串是否相等string1 = "Study"string2 = 'study'if(string1 == string2): print(string1 + ' =...

2019-07-03 20:39:10 142

原创 (Python编程从入门到实践)第四章 操作列表

遍历列表使用for循环可以以依次访问列表中每一个元素nums = [1,2,123,144]for i in nums: #i从nums[0]一直到nums的最后一个元素 print(i)#注意缩进代表在for循环里面创建数值列表使用range()函数可以生成一系列的数字#使用range()生成一组数字for i in range(1,5+1): prin...

2019-07-02 21:54:59 196

原创 (Python编程从入门到实践) 第三章 列表简介

1列表是什么?列表是由一系列按照特定顺序排列的元素组成。其中的元素可以是字符串,数字,而且元素之间没有任何关系。Python的列表用[ 元素 ] 一对方括号表示,里面是元素。# 打印列表(包括 括号都会显示)bicycles = ["trek","cannondale","redline","specialized"]print(bicycles)访问列表元素使用下标...

2019-07-01 23:43:00 194

原创 (Python编程从入门到实践) 第二章 变量和简单数据类型

1 变量变量命名规则:变量名只能包含字母,数字和下划线。单不能以数字开头(1_num是错误) 变量名不能包含空格 不要将Python关键字和函数名用作变量名2 字符串1.Python中 使用双引号或者单引号(成对使用)括起来的内容就是字符串。例如:" Old Wang "或者'Old Wang',不能单引号和双引号混合使用 'Old Wang"。2.修改字符串中的大小写...

2019-06-30 22:46:49 131

原创 主题:linux驱动中的异步通知机制

刚刚电脑突然蓝屏死机了,,,第一版快要写完了突然就搞事情,还让不让我好好跨年了。今天是2018-12-31 21:30,祝各位新年快乐,事业有成,两位指导导师身体健康。2019年好好做项目,实验室的同志们一起努力。编译系统   :ubuntu 16.04内       核   :linux-2.6.22.6硬件平台   :jz2240交叉编译器:arm-linux-gcc 3.4....

2018-12-31 21:17:44 639

原创 主题:中断系统的实际应用

编译系统   :ubuntu 16.04内       核   :linux-2.6.22.6硬件平台   :jz2240交叉编译器:arm-linux-gcc 3.4.5上一篇具体的分析了linux中断框架,这里贴出来一个具体事例驱动程序如下:#include <linux/module.h>#include <linux/kernel.h>...

2018-12-31 13:20:40 688

原创 主题:S3C2440裸机简单汇编代码扫盲

系统       :ubuntu 16.04硬件平台:S3C2440 编译器    :arm-linux-gcc 4.5.1一、几条重要汇编代码 指令 解释 mov Rn,Rm 把寄存器Rm存入寄存器Rn ldr Rn,Rm 把寄存器Rm存入寄存器Rn str Rn,Rm 把寄存器Rn存入...

2018-12-20 14:51:59 515

原创 主题: 编译工具配置出现的问题总结

系统:Ubuntu 16.04硬件平台:S5PV210资料来源:根据友善之臂提供的arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz压缩包步骤:Step1: tar zxvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C /注意: C 是大写的, C 后面有个空格, C 是改变解压安装目录的意思Step2:把编译器路径...

2018-12-19 16:31:19 94

原创 主题:linux-3.0.8内核配置出现的问题总结

系统:Ubuntu 16.04硬件平台:S5PV210编译工具:arm-linux-gcc 4.5.1资料来源:根据友善之臂提供的linux-3.0.8内核压缩包把内核压缩包解压:tar zxvf linux-3.0.8-20180411.tgzStep1: 进入linux-3.08目录中Step2: cp mini210_linux_defconfig .configStep3:...

2018-12-19 16:27:06 363

原创 主题:进程控制编程

参考书本《高质量嵌入式linux C编程》一、为何需要多线程,为何需要并发    首先解释什么是线程:通常在硬盘上的一个可执行文件(例如在windows上的是.exe文件,在Linux上是只要有可执行权限x) 称之为程序。当运行一个程序之后,程序就会加载到内存中,在运行的过程中就称之为线程。因为可以发现,一个程序可以创造多个线程。但为何需要多线程呢?为何需要并发呢?作为一枚单片机爱好者,在写裸...

2018-12-19 15:25:38 298

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除