- 博客(194)
- 资源 (17)
- 收藏
- 关注
原创 ntp交叉编译,arm移植
解压源码:ntp-4.2.8p8.ar.gz配置:./configure --prefix=/home/light/ntp_20180725/ --host=arm-linux CC=arm-linux-gnueabi-gcc --with-yielding-select=no --with-openssl-incdir=/home/light/Adsp573/buildroot/output...
2018-07-25 11:53:34
2552
转载 Ubuntu安装libssl-dev失败
Ubuntu安装libssl-dev失败安装pyOpenSSL时需要用到本机的libssl-dev库,进一步在Ubuntu上尝试安装库时出错,如下:ygu@guyongqiangx:~$ sudo apt-get install libssl-devReading package lists... DoneBuilding dependency tree Reading stat...
2018-06-07 22:52:18
3267
原创 ubuntu apt-get update : W: An error occurred during the signature verification.
ubuntu apt-get update : W: An error occurred during the signature verification.W: An error occurred during thesignature verification. The repository is not updated and the previous indexfiles will be...
2018-06-07 22:50:34
4349
转载 linux驱动的异步通知 驱动程序向应用程序发送信号
#include #include #include #include #include #include #include #include #include /* fifthdrvtest */ int fd; //信号处理函数 void my_signal_fun(in
2016-10-31 18:35:15
3589
原创 SSH Server Dropbear在嵌入式平台上移植
1.下载 dropbear-2015.68.tar.bz2。2.解压3.配置编译./configure --prefix=/home/light/dropbear068 CC=armv7l-timesys-linux-gnueabi-gcc --host=arm makemake scparm-linux-gcc-strip dropbeararm-li
2016-05-30 11:30:54
2063
转载 linux进程间的通信: 信号量
一、信号量简介信号量: 用于管理对资源的访问。荷兰计算机科学家Edsger Dijkstra提出的信号量概念是在并发编程领域迈出的重要一步。信号量是一个特殊的变量,它只取正数值,并且程序对其访问都是原子操作。二、信号量的定义它是一个特殊变量,只允许对它进行等待(wait)和发送信号(signal)这两种
2015-12-23 10:56:51
671
转载 linux进程间的通信: 消息队列
一、消息队列(message queue)消息队列也是System V IPC机制之一。消息队列与命名管道类似,但少了打开和关闭管道方面的复杂性。但使用消息队列并未解决我们在使用命名管道时遇到的一些问题,如管道满时的阻塞问题。消息队列提供了一种在两个不相关进程间传递数据的简单有效的方法。与命名管道相比,消息队列的优势在于,
2015-12-23 10:54:57
591
转载 linux进程间的通信: 共享内存
一、共享内存介绍共享内存是三个IPC(Inter-Process Communication)机制中的一个。它允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在进行的进程之间传递数据的一种非常有效的方式。大多数的共享内存的实现,都把由不同进程之间共享的内存安排为同一段物理内存。共享内存是由IPC为进程创建一个特殊的地址范围,
2015-12-23 10:53:41
539
转载 Qt Model+View+Delegate
Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系。这种结构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的数据源可以被这些item view使用。这里对model/view的结构进行了描述,结构中的每个组件都进行了解释,给出了一些例子说明了提供的这些类如何使用。Model/View
2015-12-04 13:30:21
3844
1
原创 Sqlite移植
1.下载最新版的sqlite源码http://www.sqlite.org/download.htmlsqlite-autoconf-3090200.tar.gz2.解压代码tar xzvf sqlite-autoconf-3090200.tar.gz 3.进入目录cd sqlite-autoconf-3090200/4.配置交叉编译器,配置安装路径./config
2015-11-06 14:18:55
521
转载 Linux Frame Buffer 驱动
基本原理通过 framebuffer ,应用程序用 mmap 把显存映射到应用程序虚拟地址空间,将要显示的数据写入这个内存空间就可以在屏幕上显示出来;驱动程序分配系统内存作为显存;实现 file_operations 结构中的接口,为应用程序服务;实现 fb_ops 结构中的接口,控制和操作 LCD 控制器;驱动程序将显存的起始地址和长度传给 LCD 控制器的寄存器 (一般由
2015-10-15 13:58:57
1695
转载 DirectFB接口资料
1. 概述 ================ 本文主要研究DirectFB及其向上向下的接口,顺带讲一下QT搭配DirectFB使用的一些笔记。 其他,如DirectFB的内部结构、Qt的内部结构、及其他GUI系统如android不在本文讨论范围内。 本文会设计一些DirectFB的2D加速函数介绍,3D加速不再本文讨论范围内。 =========
2015-09-16 15:03:01
1030
原创 QT4.8.4+DirectFB1.4.3
1.QT Embed移植不详细说了2.编译DirectFB。3.在使用到的交叉编译qmakeconf文件中添加DirectFB的库文件和头文件路径QT_CFLAGS_DIRECTFB = -I/usr/local/dFB-1.4.3/include/directfb -D_REENTRANTQT_LIBS_DIRECTFB = -L/usr/local/dFB-1.4.3/lib/
2015-09-15 13:56:40
1198
原创 DirectFB 1.4.3 在ARM-linux上移植
1.下载源码DirectFB-1.4.3.tar.gz2.解压缩 tar xzvf DirectFB-1.4.3.tar.gz3.进入目录cd DirectFB-1.4.34.automake工具配置,需要系统中包含有automake相关工具配置./autogen.sh 5.参数配置./configure -prefix /usr/local/dFB-1.4.3 -host
2015-09-14 14:28:05
3577
原创 u-boot Makefile -- make xxx_config分析
当我们执行:make xxx_config, 其做了什么工作呢?下面具体分析:举例:make sama5d3xek_nandflash_config[cpp] view plaincopy764 ######################################################################
2015-09-11 11:04:53
1005
转载 linux中的热插拔和mdev机制
linux中的热插拔和mdev机制 mdev是busybox自带的一个简化版的udev 作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的 mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为"dev"的文件,且文件中包含的是设备号,则mde
2015-09-07 16:27:06
702
原创 qt-4.8.4在ARM平台上的移植
1.下载源码qt-everywhere-opensource-src-4.8.4.tar.gz2.修改编译器-embeddedarmv7l-timesys-linux-gnueabi,指定Qt的硬件架构。这样QT就会去其配置文件中找与硬件架构相关的信息,配置文件在qt安装目录的~/mkspec/下面,如果用到qws,就在~/mkspec/qws下面。进入该目录,发现其中没有li
2015-08-27 20:13:41
2073
原创 tslib移植
1.下载tslib源代码https://github.com/kergoth/tslib2.解压源代码tslib3.进入源代码文件夹# cd tslib-master4.配置# ./autogen.sh出错:./autogen.sh: 3: ./autogen.sh: autoreconf: not found下载工具:autoconf#
2015-08-27 13:29:50
827
原创 嵌入式系统中增加telnetd服务
利用busybox中的telnetd程序。1.busybox配置中选中telnetd。选择独立的模块,脱离inetd。Networking Utilities ---> [*] telnetd [*] Support standalone telnetd (not inetd only)2.注意一定要选择上l
2015-08-26 14:53:03
3781
转载 inittab脚本启动解析
Linux 开机脚本启动顺序: 第一步:启动内核第二步:执行init (配置文件/etc/inittab)第三步:启动相应的脚本,执行inittab脚本,并且执行里面的脚本/etc/init.d rc.sysinit rc.d rc.local。。。第四步:启动login登录界面 login第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完
2015-08-24 11:20:36
1087
原创 arm板子挂在nfs失败-mount: wrong fs type
1.提示错误如下:# mount -t nfs -o nolock 192.168.12.90:/home/light/nfs /mnt/nfsmount: wrong fs type, bad option, bad superblock on 192.168.12.90:/home/light/nfs, missing codepage or helper progra
2015-07-28 10:43:11
2124
1
原创 Linux内核驱动之GPIO子系统
在嵌入式设备中对GPIO的操作是最基本的操作。一般的做法是写一个单独驱动程序,然后应用程序直接调用。其实linux下面有一个通用的GPIO操作接口,那就是我要介绍的 “/sys/class/gpio” 方式。首先,看看系统中有没有“/sys/class/gpio”这个文件夹。如果没有请在编译内核的时候加入 Device Drivers —> GPIO Support
2015-07-08 11:16:13
1691
转载 论 __lookup_machine_type的消失(Linux-3.0 ARMv7)
http://blog.chinaunix.net/uid-20543672-id-3019566.html在分析Linux-3.0内核启动的时,当分析到自解压后的汇编部分,发现head.S (arch\arm\kernel)中并没有对machine_type作任何的检查,只是检查了处理器ID(__lookup_processor_type)。在2.6.38及以前的代码:
2015-07-03 10:44:34
1376
转载 ARM linux启动分析
linux启动分析(1)---bootloader启动内核过程我分析的是2.4.19的内核版本,是xscale的平台,参考了网上很多有价值的帖子,也加入了自己的一些看法,陆续总结成文字,今天是第一篇:内核一般是由bootloader来引导的,通过bootloader启动内核一般要传递三个参数,第一个参数放在寄存器0中,一般都为0,r0 = 0;第二个参数
2015-07-02 11:36:00
569
转载 ARM linux的启动部分源代码简略分析
2440开发板为平台,以较新的内核linux-2.6.32.7版本为例,仅作说明之用。 当内核映像被加载到RAM之后,Bootloader的控制权被释放。内核映像并不是可直接运行的目标代码,而是一个压缩过的zImage(小内核)。但是,也并非是zImage映像中的一切均被压缩了,映像中包含未被压缩的部分,这部分中包含解压缩程序,解压缩程序会解压缩映像中被压缩的部分。zImage使用gzip
2015-07-02 11:20:03
1402
转载 MACHINE_START与MACHINE_END
玩过或者移植过arm-linux的都应该知道在/arch/arm目录下有许多与具体处理器相关的目录,当然对于s3c2440的话所对应的目录就是 arch/arm/mach-s3c2440/,在里面找到与具体板子相关的文件mach-mini2440.c,这个文件大部分内容是对平台设备(例如串口,LCD,Nand falsh等)的结构体初始化,在这个文件的最后有一个非常重要的宏:M
2015-07-02 10:39:19
576
转载 LINUX I2C模型 RTC模型 详细分析
http://www.wangweilin.name/qrx_456.html注意:1. LINUX-2.6.20的内核2. CPU是AT91SAM92603. PCF8563的I2C驱动 大体过程:1. 为什么内核要有这么多模型2. platform总线、设备、驱动模型,简单的介绍
2015-07-01 17:47:59
2084
转载 堆&栈
内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。[3]从堆上分配,亦称动态内存分配。程序在运
2015-06-15 13:18:45
442
转载 mmap详解
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域
2015-06-08 13:26:57
498
转载 Linux内存管理之mmap详解
一. mmap系统调用1. mmap系统调用 mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,write等系
2015-06-08 13:23:20
456
转载 Linux内核中ioremap映射的透彻理解
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令(如X86的
2015-06-08 11:13:30
476
转载 Linux地址映射
http://blog.chinaunix.net/uid-20528014-id-314322.html一,线性映射与非线性映射1. 内存管理物理内存管理:Linux内存最小管理单位为页(page),通常一页为4K。初始化时,linux会为每个物理内存也建立一个page的管理结构,操作物理内存时实际上就是操作page页。某些设备会映射在物理内存地址外,这些
2015-06-05 19:53:56
1845
原创 linux内存操作-----ioremap
对于一个系统来讲,会有很多的外设,那么这些外设的管理都是通过CPU完成。那么CPU在这个过程中是如何找到外设的呢?尽管在一个系统中会有诸多的外设,在每个外设的接口电路中会有多个端口。但是如果系统能够每个端口都被赋予一个具体的地址值,那么在系统中就能轻易的找到任何一个外设。系统在管理的时候,不管是内存还是外设都需要分配一个内存地址。对于一个32bit的系统来讲,可寻址的范围为2^32=4G的
2015-06-05 09:06:41
555
转载 u-boot的Makefile分析
U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为 ppc_6xx-。U-BOOT的下载地址:http://sourceforge.net/projects/u-boot我下载的是1.1.5版本要了解一个LINUX工程的结构必须看懂Makefile,尤其是顶层的,没办法,UNIX世界就是这么无奈,什么东西都用文档去管理
2015-06-03 17:52:52
1363
转载 I.MX6Q(TQIMX6Q/TQE9)学习笔记——U-Boot移植
获取源码根据前一篇文章搭建好LTIB环境后就可以非常方便的导出u-boot源码了。切换到ltib目录,并运行如下指令:[cpp] view plaincopy./ltib -m prep -p u-boot 该指令执行需要一些时间,指令执行完成后Freescale维护的u-boot-2009.8就会出现在rpm/BUIL
2015-06-03 14:52:59
1558
转载 U-boot第二阶段分析
一、U-boot第二阶段概述上面有两篇文关于u-boot第一阶段的介绍,这两篇文章是从网上找到的,由于分析的很详细,看完这后觉得对这两篇文章u-boot第一阶段的介绍已经比较完美了,所以分享出来。从这篇文章开始分析u-boot的第二阶段。如果你只把u-boot理解成引导kernel的一段代码的话,u-boot完全没有必要设计成现在这样的一种软件框架,直接写几个文件就能完成k
2015-06-03 14:14:46
850
转载 U-boot第一阶段分析
u-boot是在单板刚启动的时候执行的一段程序。其作用是将内核从flash、硬盘等介质上拷贝到内存中,并传递给内核一些启动参数并跳转到内核去执行。由于u-boot的代码非常的依赖于不同的体系结构。对u-boot的分析也只能提炼出不同体系结构的共性,做相应的总结。总的说来,u-boot所做到工作分为两个阶段。第一个阶段是将u-boot第二阶段的代码拷贝到ram空间,跳转到第二阶段代码执行。第
2015-06-03 14:12:02
644
转载 u-boot的编译及配置 mkconfig
刚开始接触u-boot总是存在这样的疑问,../include/configs/mini2440.h是如何关联到../board/mini2440.c中的?显然他们并没有在源码中有直接的包含关系。编译u-boot时,输入make mini2440_configmakeu-boot就被成功创建了,这都归功于Makefile与mkconfig在u-boot的顶层文件夹中的Readm
2015-06-03 12:57:34
633
转载 驱动模块Makefile解析
先看一下代码ifeq ($(KERNELRELEASE),) KERNELDIR ?= /home/linux/linux-2.6.22.6 PWD := $(shell pwd) modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules modu
2015-05-25 15:23:42
538
转载 Makefile经典教程
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make
2015-05-25 10:13:26
541
PCB设计的三本圣经SI
2011-12-04
IAR详细使用教程.pdf下载
2011-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人