关闭

[置顶] blog说明

今后主要专注于arm系列芯片的嵌入式linux的各种有意思的东西!         个人blog基本上个人的一个学习笔记,见识有限,若有问题,欢迎大家指出。真诚的用开放的心态去交流。...
阅读(1216) 评论(3)

一步步玩pcDuino3--uboot下的ping,添加命令可以接受来自host的ping

uboot是一个非常优秀的开源项目。不仅仅可以学习bootloader,嵌入式,各种总线协议。还可以了解网络协议栈。在嵌入式开发中,经常使用uboot的tftp和nfs来加快开发的效率。那么在tftp可以使用之前,我们要保证host和pcDuino3可以ping通。在uboot下可以ping通host,但是host不能ping通uboot,这是因为uboot不是操作系统,我们需要做了个命令来循环等...
阅读(5776) 评论(0)

一步步玩pcDuino3--mmc下的bootloader

pcDuino3下支持mmc启动,官方的Uboot是采用SPL框架实现的,因为内部的SRAM空间达到32K,我们完全可以在这32K空间内编写一个完整可用小巧的bootloader来完成引导Linux kernel的目的。     我们首先介绍下SPL框架,可以先看下《GNU ARM汇编--(十八)u-boot-采用nand_spl方式的启动方法》和《GNU ARM汇编--(十九)u-boot...
阅读(9218) 评论(0)

一步步玩pcDuino3--mmc下的裸机流水灯

第一部分是玩pcduino3下的裸机,这个过程可以让我们更好的理解嵌入式系统,熟悉我们使用的这个平台。         首先介绍下开发环境: 虚拟机:VMware® Workstation 10.0.2 build-1744117 系统:Linux slackware 3.2.29-smp #2 SMP          交叉编译器:arm-linux-gnueabihf-    版本号:...
阅读(12019) 评论(0)

记录#pragma pack()的问题

在Cortex M0平台上做开发的时候,遇到一个纠结了两三天的问题。 代码添加了PWM马达控制后,继续做USB复合设备。在做好USB复合设备,发现原来的PWM马达控制不起作用了,首先对比了模块的寄存器设置,完全一致,然后对比代码,除了USB部分, 没有任何差别,接着尝试对比了bin档和map文件,发现二者最大的区别在于 一个调用了uread.o中的__eabi_uread4函数和uwrite...
阅读(8697) 评论(1)

TortoiseSVN实现本地版本控制

以前组里做项目用过P4和SVN,装个客户端就很容易上手使用。最近一个人做一个项目,没有服务器进行代码管理,就得在自己的电脑中进行版本管理。         每有一次大的改动就建立新的文件备份实在太麻烦,想来想去还是在本地建立一个版本控制,方便自己,节省空间和时间。         因为本地已经有TortoiseSVN,在C:\SVN\Project目录下右键新建一个版本库 然后再...
阅读(12784) 评论(4)

记录两个关于Qt的小问题

1.在程序如何使用qt的库,在解析ini文件格式时,Qt中的QSettings类可以很好的解析ini文件格式,ini文件格式简单,但是写个功能完善而且较强大的库还是要花点时间和功力的。在写代码时遇到这个问题,不想写自己的解析ini格式的类,想直接使用qt的库,结果发现Qt对ini格式无法真正的写入,记得刚刚写的有Gui的代码也使用了QSettings类,使用很正常。经过查找分析,发现仅仅链接qt的...
阅读(4237) 评论(0)

linux下使用getopt处理命令行

以前在linux的shell下运行程序时也带过参数,在参数的处理上是自己写个简单的解析函数来处理argv[]的,显得很麻烦而且笨拙。今天学习代码时才发现有个getopt函数可以轻松的处理命令行参数。难怪linux的那些程序的参数处理都做的很强大。比如ls -al --color=auto,ls --help。         首先用man 3 getopt看了下函数的手册,结合附带的代码还是...
阅读(6965) 评论(0)

slackware的一些常用配置

花了点时间在本子上装了slackware14 x86_64的,感觉还行。这次没有装linux和win的双系统,单跑slackware,然后在虚拟机中跑个xp,主要是为了网银的使用和解决office的兼容性问题。         slackware的安装比一般的发行版要复杂,但是对于比较熟悉linux的人来说还是可以搞定的。安装的时候用的是ultraiso制作的启动U盘,修改bios中改为U盘启动...
阅读(6892) 评论(0)

qt和linux下的input设备

在嵌入式开发中,qt的键盘往往都是特制的,如何让特制的键盘被qt用起来,需要对linux的input子系统有一定了解,并且特别要追一下qt对外界输入时间的处理方式。应用层和驱动层相互关联,在此仅先粗略分析下qt这部分:     在qt的源码中grep下/dev/input/event之类的,就可以顺藤摸瓜了 对于qt的embedded版本,第一个运行的QApp当作server,后起来的QApp...
阅读(10373) 评论(0)

linux驱动实践(五)--linux下的按键驱动之查询方式

虽然好几个月之前就对linux下的阻塞,非阻塞,select poll的实现,工作队列,tasklet等等做了较为深入的分析,但是在遇到实际的硬件驱动中,才真正去思考怎么将这些用到实际中,构建一个稳定高效的驱动。         板子上有四个按键,linux内核中有input子系统来很好的完成这个事情。先按照自己的思路一步步来,最后看下人家input子系统是如何实现的,肯定有不少值得借鉴的。...
阅读(5092) 评论(0)

linux驱动实践(四)--linux下读写寄存器

arm裸机下读写寄存器很容易,各个寄存器和内存的地址是单一地址空间,他们是用相同的指令进行读写操作的.而在linux下就要复杂很多,因为linux支持多个体系架构的CPU。比如arm和x86就不一样,具体的差别我暂时也说不上来,这个涉及到CPU体系的设计。目前我只关心:linux为了支持多个硬件体系,在IO访问上做了自己的接口。可以通过IO内存和IO端口这两种方式进行IO访问。在LED的例子上给出...
阅读(13976) 评论(0)

linux驱动实践(三)--不大一般的LED驱动

看了这么多内核代码,终于要自己开始做驱动了.按照由易到难,由浅入深的顺序,就从LED开始.         LED驱动可以说是hello world之后最简单的驱动模块了.如果自己写一个LED驱动那是很简单的,其实用linux内核中的leds子系统来做也是比较简单的,内核中的leds子系统是将led抽象成platform_device,并有leds_class.这样,在/sys/class/le...
阅读(10606) 评论(0)

linux驱动实践(二)--linux3.0.46移植和NFS根文件系统

将近两个月之前就准备开始了,但是在移植linux时候发现编译出来的Image有2.4M之大,而开发板提供的uboot最大只能烧写最大2M。所以本来准备跳过uboot的,但是如果自己不搞个好点的bootloader,我的kernel都烧不了。索性花了一个多月的时间移植了u-boot-2012.07,采用nand-spl方式启动的。可以支持tftp下载,那么我的开发流程就是用开发板自带的nor f...
阅读(5121) 评论(3)

GNU ARM汇编--(二十)总结

从这个系列第一篇开始,那是4月22号,到今天做一个总结,已经有7个多月的时间了,利用业余时间学习自己感兴趣的东西,进度比较慢,也是比较累的,但收获也是很多的.         这个系列之所以写出来,是因为自己在玩linux文件系统和驱动的时候,总是觉得自己应该回头看看bootloader到底是怎么工作的.本来只想着重新看下arm体系结构和汇编语言的,没想到一路上还学习了以前从没想过的编译链接的细...
阅读(7515) 评论(9)

GNU ARM汇编--(十九)u-boot-nand-spl启动过程分析

在理解bootloader后,花些时间重新学习了开源软件的makefile和相关脚本之后,自己的u-boot移植工作也比较顺利的完成了:         移植环境:         ubuntu 12.04         U-Boot 2012.07 (Nov 28 2012 - 20:05:48)         arm-none-linux-gnueabi-gcc (Sourcery...
阅读(10000) 评论(8)
108条 共8页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:485583次
    • 积分:7536
    • 等级:
    • 排名:第3177名
    • 原创:107篇
    • 转载:0篇
    • 译文:1篇
    • 评论:99条
    博客专栏
    最新评论