历史上的今天
返回首页

历史上的今天

今天是:2025年07月01日(星期二)

正在发生

2020年07月01日 | 将TQ2440的ADS工程文件移植到KEIL5中

2020-07-01 来源:eefocus

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

推荐阅读

史海拾趣

BREL International Components公司的发展小趣事

面对日益激烈的国际竞争,BREL International Components公司开始实施全球化战略。公司首先在亚洲设立生产基地,利用当地的低成本优势提高生产效率。随后,BREL在欧洲和北美设立研发中心,吸纳全球顶尖的技术人才,推动技术创新和产品升级。通过全球化的战略布局,BREL不仅降低了生产成本,还拓宽了市场渠道,实现了业务的快速增长。

EDAC公司的发展小趣事

ECS-A公司是一家专注于电子元器件生产的公司。在发展过程中,ECS-A公司意识到全球化是不可避免的趋势。因此,公司决定实施全球化战略,通过在海外设立生产基地、研发中心和销售网络,拓展国际市场。经过多年的努力,ECS-A公司的产品已经出口到全球多个国家和地区,公司也在多个国家和地区建立了分支机构。这一全球化战略不仅使ECS-A公司的销售额持续增长,也提升了公司的国际竞争力。

Good-Ark公司的发展小趣事
如蜂鸣器、LED灯等,用于在触发报警时发出声音或光信号。
Blue Giga公司的发展小趣事

收购后,Blue Giga在芬兰埃斯波的研发中心继续发挥其技术创新的优势,不断推出新产品和解决方案。同时,借助Silicon Labs的全球销售网络,Blue Giga的产品开始进入更多国家和地区的市场。公司的业务范围不断扩大,应用领域也更加广泛,涵盖了工业自动化、消费类电子产品、汽车等多个领域。

这五个故事描绘了Blue Giga从创立到发展的过程,展示了其在电子行业中的努力和成就。虽然每个故事都基于事实,但具体细节可能因缺乏详细资料而有所简化或推测。如需更深入的了解,建议查阅Blue Giga的官方资料或相关新闻报道。

EETools公司的发展小趣事

面对快速变化的市场环境和不断涌现的新技术,EETools始终保持开放和创新的姿态。公司不仅持续关注行业动态和技术趋势,还积极探索新的业务领域和增长点。例如,EETools正在研发基于人工智能和物联网技术的嵌入式开发工具,以满足未来市场的需求。同时,公司还计划进一步拓展海外市场,提升品牌在国际市场的竞争力。这些举措将为EETools的未来发展奠定坚实的基础。

CoolerMaster公司的发展小趣事

林仁政跳出已有的框架,不断思考机箱的设计。他敏锐地觉察到人们对于免工具安装的主板散热片的偏好,并深知散热效果不仅仅取决于散热片和风扇,更需要考虑空气的流动情况。结合日本高水准的立体设计灵感,林仁政带领工程师挑战困难,成功设计出了一台铝制机箱。这一机箱不仅具有高度的创新性,更因其纯手工制作的特性而显得弥足珍贵,对Cooler Master的发展具有重要意义。

问答坊 | AI 解惑

单片机小制作

适合于初学者 [ 本帖最后由 zhaobqing163 于 2008-11-29 18:17 编辑 ]…

查看全部问答>

求西门子plc的工业网络实验室的发展史

急求西门子plc的工业网络实验室的发展史。plc  的S7 300或者400的组成结构应用…

查看全部问答>

Keil 入门实例教程

Keil 入门实例教程…

查看全部问答>

STM8普及,无需ST-Link,新买的器件可以无限次数串口下载程序

STM8的单片机,只要内部是空的,就算Bootloader disable,也会上电运行Bootloader,可以从串口下载程序。新的器件虽然Bootloader disable,但是也可以用串口下载至少一次程序。 如果是一般的程序下载后,Bootloader是disable,那么不借助ST- ...…

查看全部问答>

请教大家一个很弱的问题,LM124是几伏电压供电?

在资料上看到LM124的供电电压范围是3~30V,可是我在调试板子的时候发现当变动LM124的供电电压时,输出端电压会随着改变,请问LM124的供电电压到底应该是多少?…

查看全部问答>

PLL输出差分时钟信号

请问如何用PLL#_CLKOUTp和 PLL#_CLKOUTn输出差分时钟,我先前都是用一般IO通过PLL中调整相位至180输出的,不知道用这两个脚如何实现。期待>>>>>>>>>>>>>>…

查看全部问答>

150°环境温度下使用的升压芯片

    我要做一个将锂电池3.7V升压到5V给单片机供电的电路,请求高手指教~~不胜感激~~…

查看全部问答>

LM3S8962模拟SPI驱动VS1003学习心得

LM3S8962模拟SPI驱动VS1003学习心得     倒腾了很久,参考了高手给我的一个程序,终于用VS1003听到声音了。这里也和大家分享一下我的学习心得~~人人助我,我助人人~~         这段时间仔细的研究了一下I ...…

查看全部问答>

MIPI 接口编程

大家看看用STM32给MIPI模块通信,大家帮忙看看方案可行不。附件是MIPI 的数据格式, 包括读和写。我原来想用PIC18F来做,利用SPI 可以做到高速写, 数据率10MHz, 但问题是 MIPI读写公用SDATA线,而PIC18F SPI 入和出是分开的 MOSI, MISO. 不知道有 ...…

查看全部问答>