KEIL MDK平台 S3C2440 编译链接、烧写调试

KEIL MDK平台 S3C2440 编译链接、烧写调试

本系列博文将从软件仿真开始一步步介绍KEIL MDK平台 S3C2440汇编/c语言程序的编辑、编译、链接、调试过程,以及建立裸机程序、移植ucos操作系统、移植ucGUI的全过程。
本帖将介绍基于KEIL MDK平台 S3C2440 编译链接、烧写调试的上机过程。以最简单的led例程为例。硬件平台是友善之臂公司出品的micro2440核心板及底板套件。本文将介绍如何将S3C2440的ADS平台例程移植到MDK平台。

建立工程,添加源文件

1.启动MDK,建立工程,芯片选择三星(Samsung)的S3C2440A。
在这里插入图片描述
2.出现提示是否添加汇编语言的启动文件,我们这里选择否。我们这里采用ADS例程中的启动文件。
在这里插入图片描述
3.将ADS1.2平台的myled例程下的源文件复制到MDK的工程目录。
在这里插入图片描述

在这里插入图片描述

4.将如下源文件添加到工程
在这里插入图片描述
5.添加c语言包含文件夹
在这里插入图片描述
在这里插入图片描述
6.添加汇编语言包含文件夹
在这里插入图片描述
在这里插入图片描述

编译链接源程序

1.选择创建编译链接输出文件夹Objects
在这里插入图片描述
2.设置ROM1、RAM1的地址和空间(重要关键)
在这里插入图片描述
3.按F7或Bluid编译链接工程,提示有1个错误,6个警告。
在这里插入图片描述
其中警告可以忽略,错误提示找不到复位程序入口。这是因为在MDK平台需要显式地定义以RESET命名代码段作为复位程序的入口点。
在这里插入图片描述
原例程中定义的代码段名字叫INIT修改为Reset
在这里插入图片描述

4.重新编译,提示2440init.s中5个错误,6个警告。
在这里插入图片描述
错误提示找不到标号。该标号其实对应分散加载文件.sct中的分段的标号。如下

; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_ROM1 0x00000000 0x00200000  {    ; load region size_region
  ER_ROM1 0x00000000 0x00200000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_RAM1 0x30000000 0x04000000  {  ; RW data
   .ANY (+RW +ZI)
  }
  RW_IRAM1 0x40000000 0x00001000  {
   .ANY (+RW +ZI)
  }
}

将源文件中所有的

|Image$$RO$$Base|
|Image$$RO$$Limit|
|Image$$RW$$Base|
|Image$$ZI$$Base|
|Image$$ZI$$Limit|

分别替换成

|Image$$ER_ROM1$$RO$$Base|
|Image$$ER_ROM1$$RO$$Limit|
|Image$$RW_RAM1$$RW$$Base|
|Image$$RW_RAM1$$ZI$$Base|
|Image$$RW_RAM1$$ZI$$Limit| 

4.再次编译链接,有出现一个新的错误
在这里插入图片描述
该错误提示在2440init.s中没有8字节对齐。在代码段定义的前一句添加代码PRESERVE8。再次编译无错误。
在这里插入图片描述

代码烧写与调试

1.选择Debug功能
在这里插入图片描述
2.选择烧写的FLASH算法
在这里插入图片描述
3.烧写成功,开发板led灯闪亮

博客同款例程

https://download.csdn.net/download/weixin_41551104/13134436

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值