嵌入式Linux开发
蜗小牛__
这个作者很懒,什么都没留下…
展开
-
基于S3C2440的USB摄像头应用简单实现之应用层框架(一)
浅解基于S3C2440的USB摄像头视频采集应用之应用层框架解析(一)目的:在嵌入式系统中,视频采集主要采用两种接口:一种是标准摄像头接口,一种是USB接口(USB1.1)。标准的摄像头接口,接口复杂,但传输速度快,适合高质量视频采集,而USB接口,接口简单,但有性能瓶颈,只能用于低质量的视频采集。我采用的是mini2440开发板,内为S3C2440芯片,S3C2440自带USB1.1主机接口和CM原创 2016-11-21 00:28:02 · 2486 阅读 · 0 评论 -
#pragma pack学习
最近调试网络的服务端程序,自己写了一个小客户端程序来测试,发现服务程序解包错误。经调试发现客户端的协议头大小和服务器端的协议头大小不一致。原因是服务器端加了#pragma pack(1),而客户端没加。之前没接触过这个编译宏,现在来认真学习之。首先google之~~,原来#pragma pack有几种形式,我所接触到的是#pragma pack(n),即变量以n字节对齐。 变量对齐在每个系统中是...转载 2018-03-23 14:35:54 · 178 阅读 · 0 评论 -
消息队列 mq_queue,报错: message too long
原因说明:原因很简单,要注意看LINUX man手册,man 3 mq_receive里明确说了,“The msg_len argument must be greater than or equal to the mq_msgsize attribute of the queue(see mq_getattr(3))”。同理,在man 3 mq_send时,msg_len必须小于或等于 mq...原创 2018-03-16 15:01:50 · 4680 阅读 · 0 评论 -
#嵌入式Linux最小系统移植# mini2440最小系统移植(uboot、kernel、rootfs)可用源码
版本信息:1.uboot版本:u-boot-2012.10.tar.bz22.kernel版本:linux-4.0.tar.gz3.busybox版本:busybox-1.26.0.tar.bz24.交叉编译工具:$ arm-linux-gcc -v gcc version 4.4.3 (ctng-1.6.1) 代码获取路径:1.uboot:...原创 2018-02-09 21:03:07 · 697 阅读 · 0 评论 -
#嵌入式Linux最小系统移植# 对uboot移植和裁剪的一点点个人思考和总结
思路:1.分析启动流程2.移植config文件(smdk440_config)3.移植包含控制条件编译宏的.h文件(configs/s3c2440.h)4.移植板级初始化.c文件(s3c2440.c)5.移植RAM初始化?DDR?6.移植NorFlash7.移植NandFlash8.uboot应该能启动了?//分析启动流程1.make xx_config2.在makefi...原创 2018-02-09 20:55:06 · 1370 阅读 · 0 评论 -
Linux自定义shell终端提示符
参考链接:自定义shell终端提示符:http://www.cnblogs.com/lienhua34/p/5018119.html转载 2018-02-09 20:11:35 · 566 阅读 · 0 评论 -
#嵌入式Linux最小系统移植# busybox分析和移植记录
//busybox/init.c1.init_main过程分析init_main parse_inittab(); file = fopen(INITTAB, "r"); //#define INITTAB "/etc/inittab" /* inittab file location */ new_in...原创 2018-02-09 20:36:57 · 490 阅读 · 0 评论 -
#嵌入式Linux最小系统移植# yaffs2根文件系统移植出错记录
busybox官网地址:https://busybox.net/本次移植采用的busybox版本:busybox-1.26.0.tar.bz2交叉编译工具链版本:$ arm-linux-gcc -v gcc version 4.4.3 (ctng-1.6.1) 1、busybox目录下make menuconfig2、给内核打上yaffs2补丁...原创 2018-02-09 20:42:07 · 1338 阅读 · 0 评论 -
#嵌入式Linux最小系统移植# mini2440内核4.0.8移植记录
/*移植内核Linux4.0.8*/1.机器码匹配(linux/arch/arm/tools/mach-types)# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number mini2440 MACH_MINI2440 MINI2440 ...原创 2018-02-09 20:49:27 · 1559 阅读 · 0 评论 -
ARM架构下函数调用过程分析
1.被分析的C程序#include #include inttest1(int a1,int b1){ int c1; c1 = a1+b1; return c1;}inttest2(int a2,int a3){ int c1 = 0 ,c2; c2 = test1(a2,a3); return c1;}int原创 2018-01-13 17:18:33 · 4563 阅读 · 0 评论 -
x86_64架构下函数调用过程分析
//被分析的C程序inttest1(int a1,int b1){ int c1; c1 = a1+b1; return c1;}inttest2(int a2,char b2){ int c2; c2 = test1(30,40); return c2;}int main(int argc,char **argv){原创 2018-01-13 17:16:50 · 1755 阅读 · 0 评论 -
程序典型的存储空间安排图
一个C程序经过编译链接之后形成可执行文件,可执行文件即由一条条的汇编指令组成,其排布方式如图1所示。历史沿袭至今,C程序一直由以下几部分组成: 正文段:由CPU执行的机器指令组成。通常,正文段是可共享的,在存储器中也只有一个副本,另外,正文段通常是只读的,防止程序由于意外修改其指令。 初始化数据段:通常将此段称为数据段,它包含了程序中需要明确赋初值的变量。 未初始化数据段:在程序开始执行之原创 2018-01-13 17:07:35 · 2473 阅读 · 0 评论 -
嵌入式Linux菜鸟学习之路
1.设备驱动的作用计算机系统由硬件、软件组成,而对于实际开发来说,硬、软件间耦合性应尽量低,即应用开发工程师不需关心 硬件,而硬件开发工程师无暇顾及软件。为了降低硬、软耦合性,产生了设备驱动工程师。 2.操作系统驱动设计架构在无操作系统时,硬件工程师可以自定义API供应用开发工程师使用;而使用操作系统后,需按操作系统定义的架构设计驱动,如此才能良好的嵌入内核中。对图1.1而言: 优点:驱动编写简单原创 2016-12-09 00:40:53 · 3076 阅读 · 0 评论 -
基于S3C2440的USB摄像头应用简单实现之摄像头初始化(三)
Video4Linux2:该应用使用的是USB摄像头,在Linux中内核驱动框架多采Video4Linux2(V4L2),V4L2为上层的访问底层的视频设备提供了统一的接口,提取出公共代码避免底层硬件差异。 V4L2支持三类设备:视频输入输出设备、VBI设备和radio设备及更多。下图V4L2在Linux系统中的结构图:关于V4L2更加详细的介绍见:1.V4L2框架分析原创 2016-11-24 00:47:45 · 2906 阅读 · 0 评论 -
基于S3C2440的USB摄像头应用简单实现之LCD初始化(二)
LCD工作的硬件需求: 要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的 形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。通 过LCD控制器就可以产生LCD驱动器所需要的控制信号来控制STN/TFT屏了。帧缓原创 2016-11-21 02:15:23 · 1171 阅读 · 0 评论 -
Linux下常用压缩 解压命令和压缩比率对比
https://www.cnblogs.com/joshua317/p/6170839.htmlLinux下常用压缩 解压命令和压缩比率对比 常用的格式有: tar, tar.gz(tgz), tar.bz2,不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大。tar 只是打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来。(1)打包归档格...转载 2018-03-14 16:44:51 · 7306 阅读 · 0 评论