发布时间:2012-12-16 20:42:25
首先,如果你有幸看到这篇文章,千万不要试图在2个小时内阅读完,就算你2个小时阅读完,我相信你也不会理解里面讲解的精华之处,我相信,你应该将此文章,慢慢品尝,这绝对是一篇需要品尝2~3天,再结合自己过往的经验,加上自己的思考,我相信会对你不仅仅是技术能力,甚至包括整体的思维方式都会有一个非常大的提高。 我写这篇文章的目的,是用本人20年的嵌入式经验呈现给大家一副完整的产品,项目开发蓝图,用本人多年经的历总结了一些教训无私的分享给各位,希望各位今后能站在本人的肩膀之上,少走弯路,多为公司,为个人多做贡献,那我的愿望就达到了,也同时希望能看到大家反馈和回复,留个脚......【阅读全文】
发布时间:2012-12-16 20:42:05
CPU要访问内存最简单的办法是用一个立即数表示数据地址,然后用立即数发起访问,但由于ARM CPU的架构方式,ARM CPU没有提供这样的指令。arm cpu采用寄存器间接寻址方式,将数据的地址放在寄存器中,然后用寄存器中的值发起访问: ldr Rd,[Rn] 它的扩展形式是: ldr Rd,[Rn,op2] ldr R1,[R2,#4] ldr R1,[R2,R3,lsl #2] 另外一种方式是使用PC相对地址,假设你有某一个变量中memory中,你不能使用该变量地址时,你可以将该变量地址存储在代码执行附近,然后采用PC加上......【阅读全文】
发布时间:2012-12-16 20:40:44
MTD(memory technology device内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统。MTD的主要目的是为了使新的memory设备的驱 动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD的所有源代码在/drivers/mtd子目录下。我将CFI接口的MTD设备分为四层 (从设备节点直到底层硬件驱动),这四层从上到下依次是:设备节点、MTD设备层、MTD原始设备层和硬件驱动层。MTD字符驱动程序允许直接访问flash器件,通常用来在flash上创建文件系统,也可以用来直接访问不频繁修改的数据。MTD块设备驱动程序可以让fl......【阅读全文】
发布时间:2012-12-16 20:40:13
使用Uboot201106,使用mini6410开发板,使用mini6410自带内核文件。 用tftp服务,下载至内存成功: 图1: 但出现了如图的错误: 图2: 说是Image Format for bootm command、、、、 于是,花了一两天的研究时间得到的结论是,bootm无论如何都通不过。也就是do_bootm()函数死了,返回了错误。同时我证明,那个自带的内核确实可用,前提是使用FriendlyARM提供的Uboot。 无意中想到mkimage工具是制作内核镜像的。它是把内核......【阅读全文】
发布时间:2012-12-16 20:37:48
我按照以前实验笔记《使用JLink烧写bin文件到Mini2440》所示的方法去烧录u-boot到NandFlash。结果烧是烧进去了,但是启动不成功。这个问题稍后再研究。 昨天我们查看了Flash写入失败的相关代码。我在怀疑自己是不是在配置的时候选错了芯片型号。从电路原理图上看,我们的NorFlash芯片型号是:AM29LV160DB/SST39VF1601。 经过一番查找,终于搞明白了。 在 u-boo......【阅读全文】