随笔分类 -  裸机开发

摘要:本文将详细介绍MMU段式转换的过程,并在文末附上一篇讲MMU比较详细的文章。具体什么是MMU,什么时段是转换就不在本文讲了,直接戳文末的链接。 首先,进行段式转换的条件。我们要拥有一个虚拟地址,还有一级页表,这个一级页表一般是工程师在代码中建立起来的。每一个虚拟地址在这个一级页表中都有对应的表... 阅读全文

posted @ 2015-07-26 18:10 Bumble_Bee 阅读(763) 评论(2) 推荐(0)

摘要:当我们写链接器脚本的时候,我们会设置代码段的起始链接地址为0x30008000(S3C2440)。如果对链接地址理解错误的话,可能会出现像我这样的问题。 Q:gboot的链接器脚本里写的其实链接地址是内存中的0x30008000,再用交叉工具反汇编得到的start.S前几行代码地址都变成了0x... 阅读全文

posted @ 2015-07-13 23:24 Bumble_Bee 阅读(502) 评论(0) 推荐(0)

摘要:S3C2440支持两种启动方式:norflash启动和nandflash启动。 一、norflash启动 NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。ARM处理器上电之后会从零... 阅读全文

posted @ 2015-07-03 11:46 Bumble_Bee 阅读(822) 评论(0) 推荐(0)

摘要:我们编写的汇编程序还是不够底层,CPU都是对机器码进行操作的,所以还需要用汇编器将汇编代码转换成机器码才能被CPU处理。下面举几个例子来说说分析ARM机器码的方法。 对编译连接之后得到的ELF进行反汇编:arm-linux-objdump 查看得到的反汇编代码。这里如果想同时看到汇编代码和机... 阅读全文

posted @ 2015-07-01 20:39 Bumble_Bee 阅读(3322) 评论(0) 推荐(0)

摘要:个人理解吧,makefile就是写一个指定格式的文件,将一系列的编译、链接、转换等操作打包在一起,方便以后一键生成可执行的二进制文件而产生的。下面记录一下这种文件的写法,方便以后忘了来查询。 makefile文件一般格式(又叫规则): 目标文件名:依赖文件名 命令 就是这样,注意第二行,... 阅读全文

posted @ 2015-02-16 15:52 Bumble_Bee 阅读(408) 评论(0) 推荐(0)