
嵌入式linux
文章平均质量分 54
Alen.Wang
智能机器人硕士,擅长复杂电路设计、嵌入式软件编程及系统架构设计,从事嵌入式AI开发工作,有多年项目开发经验。
我的联系邮箱 alen_wp@163.com
展开
-
mjpg-streamer在Ubuntu下编译,运行
1.将USB摄像头插上,查看是否找到设备,输入:wp@ubuntu:/home/$ ls /dev/video*/dev/video02.安装必要的软件集:sudo apt-get install subversion libv4l-dev libjpeg62-dev imagemagick3.下载mipg-streamer软件,编译原创 2016-05-18 11:26:02 · 5761 阅读 · 3 评论 -
使用diff对比两个文件夹里的所有内容
上面的输出表示,文件夹1中有一个文件只存在于该目录中,文件夹2中也有一个文件只存在于该目录中。此外,文件夹1和文件夹2中都有一个名为。命令对比两个文件夹的所有内容,可以通过递归地对每个子目录和文件进行比较来实现。命令将会输出两个文件夹之间所有子目录和文件的差异。如果想要将差异输出到一个文件中,可以使用重定向符号。语法:diff -r 文件夹1 文件夹2。示例:比较文件夹1和文件夹2的所有内容。命令将会将所有差异输出到名为。的文件,但它们的内容不同。在Linux中,使用。原创 2023-06-15 09:28:28 · 9783 阅读 · 1 评论 -
如何操作字符设备/dev/mtd3
功能:逻辑擦除 MTD3 中的数据,相当于擦除所有 MTD 区块,并且格式化 MTD 数据区,该操作会清空 MTD3 上所有的数据。是 Linux 系统中的一个 MTD 设备,用于访问闪存(Flash)芯片。注意,擦除操作会清空整个分区,因此请谨慎操作。功能:将 MTD3 中的内容读取到本地文件 file.bin 中。功能:将本地文件 file.bin 中的内容写入到 MTD3 中。功能:查看 MTD 的基本信息,如大小、擦写块大小、擦写次数等。,可以使用相应的 MTD 工具来进行。原创 2023-06-14 09:28:10 · 2373 阅读 · 0 评论 -
linux getline()函数
getline()函数是什么?百度百科这样解释: getline不是C库函数,而是C++库函数。它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束。1)到文件结束,2)遇到函数的定界符,3)输入达到最大限度。linux标准C中使用条件:#define _GNU_SOURCE#include 函数声明:ssize_t ge原创 2017-06-16 20:47:14 · 4473 阅读 · 0 评论 -
Bresenham快速画直线算法
现在的计算机的图像的都是用像素表示的,无论是点、直线、圆或其他图形最终都会以点的形式显示。人们看到屏幕的直线只不过是模拟出来的,人眼不能分辨出来而已。那么计算机是如何画直线的呢,其实有比较多的算法,这里讲的是Bresenham的算法,是光栅化的画直线算法。直线光栅化是指用像素点来模拟直线,比如下图用蓝色的像素点来模拟红色的直线。给定两个点起点P1(x1, y1), P2(x2, y转载 2017-06-24 21:46:40 · 10150 阅读 · 0 评论 -
OneNET学习资料汇总帖(2018年5月16日)
OneNET接入例程资源汇总:(一)介绍学习资料汇总1.老司机告诉你OneNET3.0是什么http://open.iot.10086.cn/bbs/forum.php?mod=viewthread&tid=667&extra=page%3D12.OneNET3.0私有协议设备接入快速入门(一)http://open.iot.10086.cn/bbs/thread-710-1-1....原创 2018-05-14 19:11:10 · 2621 阅读 · 0 评论 -
ubuntu 14.04 no valid active connections found
ubuntu 14.04 强制重启后出现不能上网,点击connection information 后出现error: no valid active connections found 解决办法是在终端输入:sudo gedit /etc/network/interfaces 然后替换interfaces所有内容为: # interfaces(5)原创 2016-01-28 12:34:45 · 2686 阅读 · 0 评论 -
卸载驱动时,没有/lib/modules目录
卸载驱动时,没有/lib/modules目录,怎么办?答:没有这个目录,就创建这个目录!#rmmod spi_oled_drv#rmmod: chdir (/lib/modules): no such file or directory#mkdir /lib/modules#rmmod spi_oled_drv#rmmod : chdir (3.原创 2017-03-30 10:38:23 · 2000 阅读 · 0 评论 -
用nfs挂载内核时出错 ERROR: Cannot umount的解决办法
SMDK2440 # nfs 30000000 192.168.1.106:/work/nfs_root/uImage ERROR: resetting DM9000 -> not respondingdm9000 i/o: 0x20000000, id: 0x90000a46 DM9000: running in 16 bit mode原创 2017-04-03 15:36:41 · 2133 阅读 · 0 评论 -
apt-get update 更新失败----如何清除破损而且陈旧的PPA仓库 (W: Failed to fetch http://ppa.launchpad.net/jonathonf/pyt)
问题:我试着通过运行apt-get update命令来再次同步包索引文件,但是却出现了“404 无法找到”的错误,看起来似乎是我不能从先前添加的第三方PPA仓库中获取最新的索引。我怎样才能清除这些破损而且陈旧的PPA仓库呢?Err http://ppa.launchpad.net trusty/main amd64 Packages 404 Not FoundErr http://转载 2017-12-08 18:39:16 · 11719 阅读 · 2 评论 -
ubuntu版本很老,apt-get update更新失败时(W: Failed to fetch ...)------如何创建新的sources.list
在这个网站创建新的sources.listhttp://repogen.simplylinux.ch/1. 选择国家2.选择相邻的ubuntu版本3.选择"Ubuntu Branches"4. 生成sources.list5. 把得到内容替换到/etc/apt/sources.list6. sudo apt-get update原创 2017-12-09 13:31:19 · 1059 阅读 · 0 评论 -
执行make出现“Warning: File `xxx.c‘ has modification time 2.6e+04 s in the future“警告的解决方法
错误描述:执行make命令时出现“make[2]: Warning: File `xxx.c' has modification time 1.6e+05 s in the future “警告,原因是宿主机与虚拟机的系统时间没有同步造成的.解决方法:将时间将同步!原创 2016-01-17 16:18:09 · 18815 阅读 · 0 评论 -
ubuntu 14.04使用root登陆出现错误“Error found when loading /root/.profile”解决
在刚修改完root权限自动登录后,发现开机出现以下提示:Error found when loading /root/.profilestdin:is not a tty………….......................................................................................................原创 2016-01-12 13:28:45 · 3027 阅读 · 0 评论 -
tcp send函数发送的最大长度可以超过65535字节吗?
在前面的文章中, 我们说过, udp socket中, sendto函数单次发送的最大业务数据是65507字节, 并给出了理论的计算方式。 那么, TCP包同样被IP包包住, 表面上看, 好像是TCP包不能超过65535个字节, 所以send函数不能超过65535个字节, 可实际呢? 先说结果, 实际上, 如果send函数的长度过大, 那么会分为多个tcp包来发, 如下: ...转载 2018-09-14 08:21:07 · 5221 阅读 · 1 评论 -
TCP、UDP数据包大小的限制
1、概述首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Data)在应用层 它们的关系是 数据帧{IP包{TCP或UDP包{Data}}} 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络...转载 2018-09-04 12:10:55 · 7023 阅读 · 0 评论 -
数组元素为0的说明
最近在看UVC摄像头驱动,发现了这几段代码:for (j = 0; j < npackets; ++j) { urb->iso_frame_desc[j].offset = j * psize;//iso是实时的意思 urb->iso_frame_desc[j].length = psize; }跟踪iso_frame_d...原创 2018-06-08 16:10:25 · 4294 阅读 · 0 评论 -
在虚拟机里新建一个20G的硬盘,如何把他挂载在 /work 目录上
目的:在虚拟机里新建一个20G的硬盘,然后想把他挂载在 /work 目录上/dev/sda (系统盘)/dev/sdb (数据盘)/dev/sdc (数据盘)/dev/sdd (数据盘)/dev/sde (数据盘)1、查看文件系统是否已挂载:df -lFilesystem 1K-blocks Used Available Use% Mo原创 2018-01-01 19:37:50 · 3582 阅读 · 0 评论 -
uboot环境变量的设置(未完待续)
使用print打印当前系统环境变量。1、SMDK2440 # printbaudrate=115200bootargs=noinitrd root=/dev/nfs nfsroot=192.168.1.101:/work/nfs_root/fs_mini_mdev_new ip=192.168.1.17:192.168.1.101:192.168.1.1:255.255.255.0::原创 2017-12-26 13:44:52 · 1823 阅读 · 0 评论 -
Linux操作系统下的多线程编程详细解析----条件变量
1.初始化条件变量pthread_cond_init#include int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个缺省的条件变量。否则条件变量的原创 2017-12-06 08:48:22 · 429 阅读 · 0 评论 -
互斥锁属性
一般用于解决在多线程中,对同一个互斥量多次上锁,造成死锁的问题。互斥锁 (Mutex) 属性 线程和线程的同步对象(互斥量,读写锁,条件变量)都具有属性。在修改属性前都需要对该结构进行初始化。使用后要把该结构回收。我们用pthread_ mutexattr_init函数对pthread_mutexattr结构进行初始化,用pthread_mutexattr_destroy函数对该结构进...原创 2017-12-05 15:22:18 · 545 阅读 · 0 评论 -
Vmware虚拟机linux上网问题
1、虚拟机linux上网问题1.1 VMware中虚拟机网络的三种设置第一种:桥接(bridged)第二种:NAT第三种:Host only 。 这种模式下仅主机可以上网,虚拟机不能上网。1.2、虚拟机上网方式1:NAT方式设置步骤:第一步:在菜单栏 虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择NAT模式第二步:vi原创 2017-12-13 13:05:46 · 926 阅读 · 0 评论 -
大小端模式 判断方法
大端模式(Big-endian),是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;小端模式(Little-endian),是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分原创 2016-05-17 16:39:26 · 593 阅读 · 0 评论 -
内核中的内存申请:kmalloc、vmalloc、kzalloc、get_free_pages 之间的区别
kmalloc vmalloc kzalloc get_free_page()是内核空间申请内存空间函数malloc是用户空间申请内存函数 一 ,kmalloc() 与 kfree() 和get_free_page的区别1,用于申请较小的、连续的物理内存:使用的是内存分配器slab一小片。申请的内存位于物理内存的映射区域。其正真的物理地址只相差一个固定原创 2016-05-01 16:29:39 · 763 阅读 · 0 评论 -
块设备驱动-----新创建的分区要格式化后,才能使用!
刚创建的分区,试图把这分区挂载到 /tmp/ 目录下,但是发生错误!# ls /dev/ramblock*/dev/ramblock /dev/ramblock1 /dev/ramblock2# ls /dev/ramblock* -lbrw-rw---- 1 0 0 254, 0 Jan 1 00:07 /dev/ramblock原创 2016-04-27 14:28:02 · 959 阅读 · 0 评论 -
Nor Flash的CFI与JEDEC接口
Flash 存储器接口还有两个标准:CFI和JEDEC。CFI为公共Flash接口[Common Flash Interface],用来帮助程序从Flash芯片中获取操作方式信息(发送命令,从nor flash的芯片里获取器件的各种参数,换芯片时,不需修改内核代码),而不用在程序中硬编码Flash的ID。JEDEC用来帮助程序读取Flash的制造商ID和设备ID(在内核里有这个nor flas原创 2016-05-07 16:16:06 · 3165 阅读 · 0 评论 -
select函数详解
Select函数在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻原创 2017-02-23 20:24:26 · 982 阅读 · 1 评论 -
查看Linux内核版本的命令
方法一: 命令: uname -a 作用: 查看系统内核版本号及系统名称 方法二: 命令: cat /proc/version 作用: 查看目录"/proc"下version的信息,也可以得到当前系统的内核版本号及系统名称 下面是在单板里查看内核版本号和交叉编译器的版本/ #uname -aLinux (none) 3.4.2 #11 Tue D原创 2017-03-02 15:43:00 · 771 阅读 · 0 评论 -
虚拟机ubuntu和windows共享文件
设置虚拟机ubuntu和windows共享文件(方便复制文件到本机)(需要安装samba) 登陆ubuntu系统后,点击左边的文件夹。右击新建个文件夹。 设置为共享 ubuntu会提示你安装共享,确定下一步安装,网络好大概要3分钟左右。 ok了,我们在本机windows,打开网上领居,就能看到共享文件夹了。原创 2016-12-16 21:37:10 · 358 阅读 · 0 评论 -
__setup宏简介
内核组件用__setup宏来注册关键字及相关联的处理函数,__setup宏在include/linux/init.h中定义,其原型如下: __setup(string, function_handler)其中:string是关键字,function_handler是关联处理函数。__setup只是告诉内核在启动时输入串中含有string时,内核要去执行function原创 2016-08-02 14:41:27 · 374 阅读 · 0 评论 -
2440烧写方法----晕晕的。。。
转载请注明出处:http://blog.youkuaiyun.com/qq_26093511/article/details/518307631、JLink只能烧写Nor flash,所以首先用JLink烧写u-boot到Nor flash,然后把拨码开关拨到Nor启动,连接上USB-COM1、USB-host两根USB线,打开SecureCRT软件,配置相应串口参数,给开发板上电,按空格键进入u-b原创 2016-07-05 13:40:59 · 601 阅读 · 0 评论