共2条
1/1 1 跳转至页
lpc2210,mem lpc2210分散加载文件mem_a
问
1.我有一个test.c文件,定义了一个变量const int pp2=14;
2.然后修改mem_a文件.如下
ROM_LOAD 0x80000000
{
ROM_EXEC 0x80000000
{
Startup.o (vectors, +First)
* (+RO)
}
ROM_LOAD 0x81000000
{
test.o(+RW)
}
IRAM 0x40000000
{
Startup.o (+RW,+ZI)
}
STACKS 0x40004000 UNINIT
{
stack.o (+ZI)
}
ERAM 0x81000000
{
* (+RW,+ZI)
}
HEAP +0 UNINIT
{
heap.o (+ZI)
}
}
编译可以通过.但为什么老是出现"No section matches pattern test.*o",写入外部ram的值也不对 答 1: 我修改为test.o(+ZI)或test.o(+RO)也不行,烦了几天了我修改为test.o(+ZI)或test.o(+RO)也不行,烦了几天了 答 2: 分散加载文件对楼上同志的几点建议:
1、分散文件一般指定,向量表、系统栈、用户栈、堆的分配位置,其他代码集中指定即可,如有特殊要求可指定代码的具体位置。因此认为 ROM_LOAD 0x81000000
{
test.o(+RW)
}
IRAM 0x40000000
{
Startup.o (+RW,+ZI)
}
没有必要存在。
2、我没有lpc2210工程模板,不知道是否存在heap.* 和stack.*文件。ZLG通常提供的工程模板不带该2文件,堆和栈的描述为Startup.o (Stacks)、Startup.o (Heap)。 答 3: 我指定一个变量到片外ram中只是作个测试.我指定一个变量到片外ram中只是作个测试.真正目的是把一段程序copy到片外ram里执行(0x81000000).好象论坛以前有人作过这样的测试,但没贴出是如何解决的.请高手回答.
2.然后修改mem_a文件.如下
ROM_LOAD 0x80000000
{
ROM_EXEC 0x80000000
{
Startup.o (vectors, +First)
* (+RO)
}
ROM_LOAD 0x81000000
{
test.o(+RW)
}
IRAM 0x40000000
{
Startup.o (+RW,+ZI)
}
STACKS 0x40004000 UNINIT
{
stack.o (+ZI)
}
ERAM 0x81000000
{
* (+RW,+ZI)
}
HEAP +0 UNINIT
{
heap.o (+ZI)
}
}
编译可以通过.但为什么老是出现"No section matches pattern test.*o",写入外部ram的值也不对 答 1: 我修改为test.o(+ZI)或test.o(+RO)也不行,烦了几天了我修改为test.o(+ZI)或test.o(+RO)也不行,烦了几天了 答 2: 分散加载文件对楼上同志的几点建议:
1、分散文件一般指定,向量表、系统栈、用户栈、堆的分配位置,其他代码集中指定即可,如有特殊要求可指定代码的具体位置。因此认为 ROM_LOAD 0x81000000
{
test.o(+RW)
}
IRAM 0x40000000
{
Startup.o (+RW,+ZI)
}
没有必要存在。
2、我没有lpc2210工程模板,不知道是否存在heap.* 和stack.*文件。ZLG通常提供的工程模板不带该2文件,堆和栈的描述为Startup.o (Stacks)、Startup.o (Heap)。 答 3: 我指定一个变量到片外ram中只是作个测试.我指定一个变量到片外ram中只是作个测试.真正目的是把一段程序copy到片外ram里执行(0x81000000).好象论坛以前有人作过这样的测试,但没贴出是如何解决的.请高手回答.
共2条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |
我要赚赏金
