最低级的ARM入门问题
来源:百度知道 编辑:UC知道 时间:2024/05/26 23:36:42
这个我会,不过有两个问题。一:如果要精确的2s的话就得用定时器,不用太精确的话随便用个延时函数就行了,两者难度不一样,所以不知道写哪个。第二:往板子里下程序如果只有串口的话用ISP功能就行了,不过只用ads不行,得使相应的软件,复位时P0.14口要为低电平。但一般板子都有用jtag口,这个方便,不过得用仿真器。所以你把细节告诉我,我才能教你。
呜呜呜!好高深啊!。。。。。。。
ARM中是没有BIOS的, 还不清楚阁下提到的Instruction Decoder是什么, 我也是刚刚看SA1110的资料(openarm中有), 不过从字面上看, 似乎是流水线的一个环节.
ARM中, CPU复位后指令寄存器设置为00000000, 似乎arm 不分段. 这个地址映射为rom,或flash(在我们的openarm板中为flash), 是硬映射, SA1110为32位寻址, 静态存储器好像映射在第一个1G空间内.
而x86系列中bios的功能则要有bootloader或blob来实现了, 可以通过cpu的jtag接口写入flash. 都是要系统开发者自己完成的了. 当然arm的这一部分不会像bios那么复杂, 比如用linux, bios内置的很多系统中断处理和功能入口就不必了. 只需要初始化必要的系统硬件足够调入kernel运行就可以了.
如果不使用网络引导, kernel也是放在flash中的(大概也应该通过jtag写入). kernel获得控制权后首先应该把自己拷贝到RAM中(考虑到速度), 然后建立RAM disk, 解压基本文件系统, 完成启动. 也许需要把RAM disk也建立在falsh中以长久保存数据.