最低级的ARM入门问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:36:42
手上有块现成的板子,上有LPC2138,我现在需要ARM上电起动后2s,在P0.26上输出高电平来驱动一个线圈,再过2s,变为低电平,然后程序结束。就这么多,麻烦给出C的程序,并告知如何将程序写到ARM上,恳请步骤详细,(如何初始化,如何开始运行程序,越详细越好)我的板上有串口,有ADS1.2软件。ARM入门菜鸟衷心感谢。顺利解决再追加分数,哪怕我的积分全给您也好。

这个我会,不过有两个问题。一:如果要精确的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中以长久保存数据.