将TQ2440的ADS工程文件移植到KEIL5中

2020-07-01来源: eefocus关键字:TQ2440  ADS工程文件  移植  KEIL5

TQ2440的例程都是ADS环境下的,ADS已经是古董级的软件,win7都不带支持何况WIN10。考虑需求就尝试将工程移植到keil5上。查找了大量资料,试验加修改总算是移植成功了。文后附上所参考的地址。这里总结一下,方便查看:

keil环境配置

打开keil,下载相关的内核,sumsung2440的。

新建工程,选择相关内核(会提示添加源文件,如果自己有就不要添加了,直接导入),将文件导入到工程,此处和导入STM32的h文件,c文件一样

注意拷贝文件时inc文件一定要和源文件在一个文件夹(不是指工程中,是你实际存放文件的文件夹里)就是和2440init.s文件放一块

设置Target选项卡

在这里插入图片描述

这里SIZE可以自行设置1000000也行 那后面RAM开头要31000000

方便拷贝:0x30000000 0x800000 0x30800000

设置c/c++选项卡

在这里插入图片描述
在这里插入图片描述

设置头文件路径,Enable那个不要勾选

inc的必选

路径安装一下keil自带的头文件,不然会有编译错误,根据自己安装地址查找。我的在D盘


设置ASM选项卡

在这里插入图片描述

Enable也不要选


设置linker选项卡

在这里插入图片描述

方便拷贝:–sort=CallTree


修改2440init.s文件

首先,MDK默认放在最前面的段是RESET段,将2440init.s第83行(可能你的不是) AREA Init,CODE,READONLY修改为 AREA RESET,CODE,READONLY

这样编译器就能找到入口点了

在上面这句下面加上一行

PRESERVE8 ;

(为了让汇编代码8字节对齐)


修改


IMPORT  |Image$$RO$$Base| ; Base of ROM code

IMPORT  |Image$$RO$$Limit|  ; End of ROM code (=start of ROM data)

IMPORT  |Image$$RW$$Base|   ; Base of RAM to initialise

IMPORT  |Image$$ZI$$Base|   ; Base and limit of area

IMPORT  |Image$$ZI$$Limit|  ; to zero initialise


修改为


IMPORT  |Image$$ER_ROM1$$RO$$Base|   ; Base of ROM code

IMPORT  |Image$$ER_ROM1$$RO$$Limit|  ; End of ROM code (=start of ROM data)

IMPORT  |Image$$RW_RAM1$$RW$$Base|   ; Base of RAM to initialise

IMPORT  |Image$$RW_RAM1$$ZI$$Base|   ; Base and limit of area

IMPORT  |Image$$RW_RAM1$$ZI$$Limit|  ; to zero initialize


修改


BaseOfROM DCD |Image$$RO$$Base|

TopOfROM DCD |Image$$RO$$Limit|

BaseOfBSS DCD |Image$$RW$$Base|

BaseOfZero DCD |Image$$ZI$$Base|

EndOfBSS DCD |Image$$ZI$$Limit|


修改为


BaseOfROM  DCD  |Image$$ER_ROM1$$RO$$Base|

TopOfROM  DCD  |Image$$ER_ROM1$$RO$$Limit|

BaseOfBSS  DCD  |Image$$RW_RAM1$$RW$$Base|

BaseOfZero  DCD  |Image$$RW_RAM1$$ZI$$Base|

EndOfBSS  DCD  |Image$$RW_RAM1$$ZI$$Limit|


这些是通过ADS的工程设置里面设定的RO Base和RW Base设定的,在MDK中的名称不叫这个

如果不修改,会报错,

实在不想修改,可以修改 scatter 文件里面的 ER_ROM1为 RO 标号,RW_RAM1 为 RW,RW_IRAM1为ZI 以此类推即可

建议还是修改2440init.s文件方便


还有个地方:LCD_TFT.h第14行根据自己的开发板屏幕修改

#define LCD_Type LCDW35 //设定屏的类型

后面这里加粗的是修改适应自己的屏幕

设置生成bin文件

在这里插入图片描述

user选项卡如图设置,此设置直接和HEX生成在一个文件夹,修改路径可以查其他方法。

方便拷贝:fromelf.exe --bin -o “$L@L.bin” “#L”

完成后编译即可。


关于编译错误:


OutPutFilesLCD1.axf: Error: L6218E:Undefined symbol


Image$$RO$$Base (referred from2440_init.o). 


查找下在哪个文件,打开,把相关设置更改为之前要求修改2440init.s文件内容里的形式。


感谢以下分享方法的博主:

参考链接:https://www.cnblogs.com/dengxiaojun/p/4279425.html

错误解决参考:https://blog.csdn.net/manchestermi/article/details/48413361

附一个关于bin文件生成以及地址的链接:https://blog.csdn.net/u014563989/article/details/51127519

关键字:TQ2440  ADS工程文件  移植  KEIL5 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501781.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:UCOS_II的移植到S3C2440 ADS 1.2
下一篇:smdk2440移植u-boot笔记

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

TQ2440开发板学习纪实(2)--- 设置堆栈并调用C函数
本文根据上一篇TQ2440开发板学习纪实(1)—最简单的独立运行汇编程序进化而来。0 ARM堆栈(Stack)基础知识ARM支持满减类型的堆栈,满的意思是说堆栈指针SP(即R13)总是指向刚刚入栈的数据单元。与满相对应的就是不满,这种类型的栈指针SP指向栈顶的下一个空白单元。减的意思是说,栈底的内存地址大,栈顶地址小,压入数据时,栈向地址小的方向扩展。目前我们只有4KB的内存可用,范围为:0x00000000-0x00000FFF,如下图:为了充分利用这4KB的内存,我们把堆栈 指针SP初始指向0x00001000。这样设置有如下考虑:必须4字节对齐,这是ARM的要求。也就是最后两位二进制位必须为0.虽然最大
发表于 2020-03-28
TQ2440开发板学习纪实(2)--- 设置堆栈并调用C函数
TQ2440下的openssh移植
移植ssh到arm 今天在internet上参考了几位前辈文章, 将ssh移植到了TQ2440的arm板上, 现在不需要用minicom来控制uclinux了。 板子上的串口终于可以接上采集器。 主要参考文章:http://blog.chinaunix.net/u1/43047/showart_371372.htmlhttp://blog.chinaunix.net/u2/63379/showart_513655.html 1.下载需要的源码:    mkdir -p ~/arm/fs ;mkdir -p ~/arm/source    下载zlib:  wget -c
发表于 2020-02-26
讓TQ2440也用上設備樹(1)
開發板TQ2440 + 64MB 內存 + 256MB Nand軟件Linux: Linux-4.9 (https://github.com/pengdonglin137/linux-4.9 )u-boot:U-Boot 2015.04  (http://www.cnblogs.com/pengdonglin137/p/4541705.html 以及 https://github.com/pengdonglin137/u-boot )busybox:1.25.0工具鏈:編譯內核使用的是arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2(下載)編譯
发表于 2020-02-16
讓TQ2440也用上設備樹(1)
移植Python3到TQ2440(一)
平台硬件:TQ2440  64MB内存 256MB NandFlashbootloader:U-Boot 2015.04kernel:linux-4.9Python: Python-3.6.0工具链:arm-none-linux-gnueabi-gcc  4.8.3概述现在树莓派很火,在树莓派上面用户可以通过Python来控制板子上面的GPIO资源, 然后我想TQ2440也应该做到这一点。 将来根文件系统会通过NFS的方式挂载到开发板上面。一、工具链登录这个网址:http://www.veryarm.com/arm-none-linux-gnueabi-gcc我们这里使用的是最新的Linux解压版
发表于 2020-02-12
移植Python3到TQ2440(一)
让TQ2440也用上设备树(2)
一、下载前几天我把之前在Linux4.9上的改动在Linux-4.10.17上重新做了一下,改正了一些问题,下面是下载方法:git clone https://github.com/pengdonglin137/linux-4.10.17.git -b tq2440_dt 二、配置工具链关于这部分请参考博客移植Python3到TQ2440(一)三、编译1、配置make ARCH=arm CROSS_COMPILE=arm-linux- tq2440_dt_defconfig2、编译内核make ARCH=arm CROSS_COMPILE=arm-linux- uImage -j43、编译设备树make ARCH=arm
发表于 2020-02-11
基于设备树的TQ2440触摸屏驱动移植
平台开发板:tq2440内核:Linux-4.9u-boot:u-boot-2015.04 概述之前移植了LCD驱动,下面继续移植触摸屏驱动,然后将tslib也移植上去。正文一、移植触摸屏驱动为了简单起见我们对TQ2440自带的触摸屏驱动进行改写,改成设备树的形式。1、设备树触摸屏使用了两个中断,如下:这两个中断是子中断,隶属于主中断INT_ADC:关于寄存器,参考芯片手册的第16章,知道了上面的信息,我们就可以得到如下的设备树节点(可以参考博文基于设备树的TQ2440的中断(1)):tq2440ts@5800000 {compatible = "tq2440,ts";reg =reg-names
发表于 2020-02-11
基于设备树的TQ2440触摸屏驱动移植
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved