基于KEIL4开发ARM9(S3C2440)的裸机程序

时间:2022-06-12 05:26:29

本文主要介绍如何使用Keil4开发ARM9(S3C2440)裸机程序。

说明:

    一、平台:

      操作系统:Windows XP系统

      KEIL版本:4.73

开发板:ARM9(S3C2440)

二、建立工程:

       1、新建工程,选择S3C2440A处理器:

基于KEIL4开发ARM9(S3C2440)的裸机程序

2、对工程进行设置

1)设置RAM、ROM地址:

          RAM1:

            Start:0x30000000

            Size:0x200000

          ROM1:

            Start:0x30200000

            Size:0x200000

基于KEIL4开发ARM9(S3C2440)的裸机程序

      2)生成Hex文件

基于KEIL4开发ARM9(S3C2440)的裸机程序

      3)设置生成.0 .bin .axf文件

基于KEIL4开发ARM9(S3C2440)的裸机程序

     4)选择仿真器与初始化文件:

        1、仿真器设置

基于KEIL4开发ARM9(S3C2440)的裸机程序基于KEIL4开发ARM9(S3C2440)的裸机程序

        2、加载初始化文件和修改初始化文件:将代码58行的LOAD test1.axf INCREMENTAL中的test1修改为工程各即可。

基于KEIL4开发ARM9(S3C2440)的裸机程序

      5)加载Flash烧录算法与设置:注意,不可以擦除芯片或者扇区,所以只好选择Do not Erase。没有对应的芯片的Flash烧录算法,所以选择容量相近的芯片的烧录算法。(此方法为网上给出的方法,没有深入分析过,我很菜。哈哈)

并且不要选择Upadte Target before Debugging和Use Debug Driver。

基于KEIL4开发ARM9(S3C2440)的裸机程序基于KEIL4开发ARM9(S3C2440)的裸机程序

      6)设置和修改s3C2440.s汇编文件:可以使用图形界面修改s3c2440.s,如果够厉害,可以直接在汇编文件里面修改汇编代码。我不够厉害,所以我使用的图形界面修改的。

我建立的工程为一个简单的LED流水灯的工程,4个流水灯使用PF0-PF4控制,所以将PF0-PF4设置为输出。关于时钟寄存器的设置,可以参考S3C2440芯片说明手册。

基于KEIL4开发ARM9(S3C2440)的裸机程序基于KEIL4开发ARM9(S3C2440)的裸机程序

      7)加载main.c文件

基于KEIL4开发ARM9(S3C2440)的裸机程序基于KEIL4开发ARM9(S3C2440)的裸机程序基于KEIL4开发ARM9(S3C2440)的裸机程序

8)下载程序仿真:下载程序仿真时,发现KEIL中的RESET键不可以用,如果直接按RESET键,程序就跳转到0x00000000地址,再次运行时就跳飞了。所以当需要复位时,直接修改程序地址寄存器(PC,R15),如图所示,我的程序的初始化地址为

0x300001E8,所在需要复位时,我直接将R15寄存器的值修改为0x300001E8即可。

基于KEIL4开发ARM9(S3C2440)的裸机程序

总结:上以的教程为我从网上找的资料,然后经过实际操作后编写,完全可行。如有错误之处,欢迎大家指出。谢谢!大家共同学习,互相交流。

联系方式:

    QQ:553823837(Sky)

    微信:553823837(Sky)

    称呼:天朝的猫