"); //-->
今天本人的arm学习终于正式开始了,我的第一目标就是在arm上跑裸机,
当做单片机使用。
哈哈!高手不要笑我,循序渐进,是我的风格。说白了就是比较笨。
首先我选择了用汇编入门,也许你会说为什么不用c呢?
本人觉得刚开始用c不利于对arm的结构进行详细的了解,
当然如果你基础很好,很容易通过看资料了解arm体系结构,
那么你可以选择用c。
其次我手上有一块44b0x的板子,不过是小公司买的资料不多,
只能自己琢磨了。所以这里强烈建议想学arm的朋友,
买板子一定有买大公司的,不为别的,就是资料全,可以使你事半功倍。
另外,从网上下了44b0的datasheet,作为参考资料。另外买了本
《从51到arm》,感觉一般,不建议大家买。
另外,我用的是笔记本,没有并口,我只能通过arm中boot利用
串口下载程序。
好了前期准备就这些。
下面开始我的入门,第一个试验:点亮led
我用的编译环境是sdt v2.51的版本
首先打开sdt,单击“file”->“new”,在弹出对话框中选择prject选项,
在new project对话框中“type”中选择“arm executable image”选项,
其他两项是工程名和路径,自己选择。之后单击“ok”。
然后单击“file”菜单->“new”,在弹出对话框中选择
assembler source选项,
新建一个汇编源文件。
在汇编文件中编写如下代码:
PCONC EQU 0X01D20014
PDATC EQU 0X01D20018
AREA MY,CODE,READONLY
CODE32
ENTRY
B START
NOP
NOP
START LDR R0,=PCONC
MOV R1,#0xffffffff
STR R1,[R0]
MAIN LDR R0,=PDATC
MOV R1,#0xffffffff
STR R1,[R0]
B START
END
然后保存,我存为led_on.s。
下一步,我们将文件加到工程中:点击树状目录中“debug”,
之后点击“source”使其选中,然后单击“project”菜单,
选择add file to source,选择刚才的文件。在sdt中打开led_on.s文件,
点击perform build step,如果没有问题,下一步选中树状目录的
“arm executable image”,之后点击“project”菜单中
“tools configuration for led_on.apj”->armlink->set。
在弹出对话框中要设置“entry and base”几项地址,这里不多做介绍。
之后点击“build”编译成功,会在你的debug文件夹中生成一个led_on.axf文件。
现在我们将led_on.axf转换成bin文件,打开dos命令提示,
输入如下信息:
fromelf –nozeropad d:\example\debug\led_on.axf -bin d:\example\debug\led_on.bin,
回车,如果转换成功,系统将输出:
Translation to BIN format successfullly
最后我们就可以将程序下载到arm中了,这里我就不介绍了。
运行程序,我的led点亮了。呵呵,有些成就感!
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。