这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 综合技术» 基础知识» hex 求助:分散加载文件中用了两个加载区,编译后无法生成一个hex文件

共2条 1/1 1 跳转至

hex 求助:分散加载文件中用了两个加载区,编译后无法生成一个hex文件

院士
2006-09-17 18:14:16 打赏
hex 求助:分散加载文件中用了两个加载区,编译后无法生成一个hex文件



关键词: 求助 分散 加载 文件 用了 两个 加载区 编译

院士
2006-12-22 22:43:00 打赏
2楼
问 为了避开存储器中较低部的某块特定空间,在分散加载文件中设置了两个加载区,具体如下:
ROM_LOAD 0x80000000 1000
{
ROM_EXEC 0x80000000
{
Startup.o (vectors, +First)
}
}
ROM_LOAD1 0x80001200
{
ROM_EXEC1 0x80001200
{
* (+RO)
}

EIRAM 0x40002000
{
Startup.o (+RW,+ZI)
* (+RW,+ZI)
}

HEAP +0 UNINIT
{
heap.o (+ZI)
}

STACKS 0x40003ED0 UNINIT
{
stack.o (+ZI)
}
}
问题是:在ADS1.2里设置输出文件类型为intel 32 bit hex时,编译后生成的不是一个*. hex文件,而是一个包括ROM_EXEC和ROM_EXEC1两个未明类型文件的*. hex文件夹;请问高手,如何将其合而为一?或推荐其它避开特定区域更好的方法! 1: 关于zlg_boot启动用户程序的时间太长.需要等10秒,能不能短一些. 2: 请高手指点! 3: 可以这样写试试看ROM_LOAD 0x80000000
{
ROM_EXEC 0x80000000 1000
{
Startup.o (vectors, +First)
}
ROM_EXEC1 0x80001200 FIXED
{
* (+RO)
}

EIRAM 0x40002000
{
Startup.o (+RW,+ZI)
* (+RW,+ZI)
}

HEAP +0 UNINIT
{
heap.o (+ZI)
}

STACKS 0x40003ED0 UNINIT
{
stack.o (+ZI)
}
}
但是生成的文件对应从0x80001000到0x80001200是以0填充的。 4: 合并两个文件即可将两个文件用文本编辑器打开,删除第一个文件的最后一行,另一个拷贝过来即可。
具体参看 INTEL HEX 文件格式。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]