专栏中心

EEPW首页 > 专栏 > ARM学习(1)

ARM学习(1)

发布人:mayer 时间:2009-05-16 来源:工程师 发布文章
ARM学习(1)

 

今天本人的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点亮了。呵呵,有些成就感!

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

多材料3D打印机“现场”制造整台电动机

如何控制无刷电机

英特尔正与亚马逊谷歌洽谈先进封装服务

为什么讲 ROHM,还是要先从功率器件说起

基于Android平台的手机的存储器优化

视频 2010-01-14

数控车床自动加工视频

Wi-Fi 7的MLO功能:提升吞吐量与稳定性的关键技术

采用T型网络TIA设计方案——补偿流程

手机医疗终端

视频 2010-01-14

工业用控制器

视频 2010-01-15

DRAM合约价再度上涨30%

2026-04-07

PowiGaN赋能,PI TOPSwitchGaN重构中高功率电源设计范式

三星与台积电:在晶圆代工和先进封装领域展开竞争

代理人工智能、MCP和大型语言模型有什么区别?

更多 培训课堂
更多 焦点
更多 视频

技术专区