嵌入式研发
文章平均质量分 81
luciferful
这个作者很懒,什么都没留下…
展开
-
DSP boot和Linux boot
DSP的boot一般没有特别的名字,就叫做boot或者bootloader;Linux的boot就不一样,有专门的名字叫做u-boot。其实,从名字开始说我是有目的的,这类似于中国古时候,最开始是妇女没有名字,然后是不读书的人只能有名而没有字;因此,有没有名字需要归结在“社会地位”高不高的因素中。从这个方面来看,DSP的boot就地位不高,属于贫贱阶级,Linux的boot(以下简称u-boot)原创 2013-07-17 19:35:56 · 1810 阅读 · 0 评论 -
ARM Uboot经历——Uboot代码重定位
Uboot重定位是uboot启动后的一个重要功能,重定位的目的是为了让uboot运行在速度性能更好的RAM上,一般是从外部RAM搬移到内部RAM。重定位这块说简单也简单,说复杂也复杂,主要涉及到编译和链接等相关原理才能很好的理解整个过程。另外,理解了ARM的重定位,对于Kernel启动过程的重定位也就理解了。编译器惹的祸uboot重定位不是简单的copy,归根结底在于gcc的编译和链接过程原创 2013-07-18 21:07:09 · 8718 阅读 · 3 评论 -
首次编译Kernel模块的经历
今天在电脑的ubuntu上首次按照别人博客的说明编译Kernel的最简单的Hello world模块配置。先把两个参考的博客地址列出来,感谢先烈们的辛苦劳动::http://blog.csdn.net/fudan_abc/article/details/5380511过程一,Makefile的理解先说文章1的makefile,我将的makefile修改如下,主要是去掉了前面原创 2013-07-18 16:08:33 · 2123 阅读 · 0 评论 -
ARM Uboot经历——Uboot地址问题
讲一个地址问题,主要围绕三个地址来介绍:编译地址,加载地址,运行地址。其实不光是Uboot,Linux也有这三个地址;这三个地址是存在联系的,用户需要明确的知道这三个地址各代表什么意思,如何去设置和运用。事先说明的是,这里的三个地址都是首地址,也就是起始地址。概念编译地址:在编译Image的时候输入给编译器的地址,编译器在链接的时候会按照指定的地址分配代码和数据;加载地址:Im原创 2013-07-19 19:25:58 · 3290 阅读 · 0 评论 -
ARM Uboot经历——makefile与uboot目录
makefile是个很复杂的东西,但是只要有耐心层层剥下,也能看到你想看到的东西。很遗憾的事,很多人都没有耐心去层层看,我也是。对于makefile,我也仅仅从基础上了解了它在uboot中的原理和作用,其实你不一定要完全了解,但是你又不能完全不了解,这就是这个世界的矛盾。makefile 第一步最开始当然要看顶层目录下的makefile文件,当你执行make命令是就是默认这个makef原创 2013-07-22 20:19:03 · 1331 阅读 · 0 评论 -
ARM Uboot经历——Uboot初始化代码解析
Uboot初始化代码主要是在Uboot重定位之前的一系列处理,起源于start.s文件,涉及crt0.s和board.c等文件,会完成最系统环境最初始的设置和结构体赋值。reset的相关处理从_start跳转到reset.globl _start_start: b resetsave_boot_params 改函数为weak函数,未定义任何内容。用户如过有任原创 2013-07-24 23:42:55 · 2128 阅读 · 0 评论 -
坑爹的指针列表操作——uboot下面的stdio列表
最近想尝试下在仿真平台的uboot测试,主要还是为了日后仿真ARM的kernel做准备。但是坑爹的是没有串口输出,于是想自己定义输出设备接口,便开始着手研究这个stdio的东西。这个stdio的列表真是坑爹,看了半天才懂,人老了啊!初始化列表坑爹列表的根源static struct stdio_dev devs;这个静态全局变量devs中有个列表成员list,s原创 2013-09-08 11:59:10 · 923 阅读 · 0 评论