这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » relocation value dose not fit in 26 bits

共17条 2/2 1 2 跳转至
菜鸟
2007-05-14 22:03:00     打赏
11楼

应该是:LOCAL_MEM_SIZE 64M

USER_RESERVED_MEM 32M

RAM_HIGH_ADRS不要超过32M范围,在29M处比较合适吧。

在sysLib.c里面用memAddToPool函数添加,,,,很多参考bsp里面有例子。

启动后,用大型内存块分配来测试是否成功。


菜鸟
2007-05-16 23:53:00     打赏
12楼
以下是引用yaopg在2007-5-14 14:03:00的发言:

应该是:LOCAL_MEM_SIZE 64M

USER_RESERVED_MEM 32M

RAM_HIGH_ADRS不要超过32M范围,在29M处比较合适吧。

在sysLib.c里面用memAddToPool函数添加,,,,很多参考bsp里面有例子。

启动后,用大型内存块分配来测试是否成功。

内存起始地址定义:0x30000000

LOCAL_MEM_SIZE 64M

USER_RESERVED_MEM 32M

RAM_LOW_ADRS 0x30001000

RAM_HIGH_ADRS 0x30200000

正常启动后,内存大小为32M,此时加载应用程序loadmodule()正常

但,如果添加到内存池后,通过memAddToPool(0x32000000,0x2000000);

加载应用程序会像以前一样报出:“Relocation value does not fit in 26 bits.”

而且感觉两部分内存没有连接上,memAddToPool之后,用malloc来测试,

发现动态加载32M不成功,加载两个20M成功,20M的内存指针分别位于低32M和高32M中

所有两块内存没有连接统一管理。

分支和带链接分支寻址+—32M,添加内存池后,寻址范围还是超过32M。


菜鸟
2007-05-17 00:31:00     打赏
13楼

RAM_HIGH_ADRS在2M那里,感觉有点低了。可以考虑设在29M那里。

关键在于保证文本段在低32M内。可以先loadmoudle,再addtopool,记得好像loadmoulde总是把东西往高内存放。

必要的话,添加一些Show的组件,把内存使用情况show一下。

高度关注。


菜鸟
2007-05-17 20:54:00     打赏
14楼

恩,loadmodule是把代码段和数据段放在了高处

这样改只是避开了loadmodule,是否会影响以后程序稳定性就不好说了

show组件这些都已经添加,正在询问风和那边,看看有什么更好办法

有结果会跟帖回复

[em05]

菜鸟
2007-05-17 21:31:00     打赏
15楼

只要能够实现成功,从机理上来讲,这种做法本身应该不会带来不稳定性问题。

如果要先把高32M addtopool,再loadmoulde也是可以的。loadmouldeAlt函数里面有关于各个段定位的一些指定参数,可以首先获取数据段的大小,把数据段放在低32M里面,而其他段则放在高32M里面。这样做可能会比较麻烦,但会使内存使用更加优化。风河那边一般是国内的技术支持工程师做支持,很少有能直接通过国外总部解决问题的。。。

有情况通报下啊,呵呵。


菜鸟
2007-05-26 00:19:00     打赏
16楼

只有采用-mlongcall(或类似指令),来解决此问题才能确保安全、稳定。

目前库文件中的26bit编码无法重新编译,无源码,考虑新板件只保留32M,足够用了:)


菜鸟
2007-05-26 01:28:00     打赏
17楼
以下是引用jizhang在2007-5-25 16:19:00的发言:

只有采用-mlongcall(或类似指令),来解决此问题才能确保安全、稳定。

目前库文件中的26bit编码无法重新编译,无源码,考虑新板件只保留32M,足够用了:)


可否给出不安全,不稳定的原因呢?看了EABI等规范和VxWorks的文档,仅仅指令跳转有32M绝对地址限制,通常具体涉及到的汇编指令就是bl和bla。

我现在能想到的超过32M范围的情况在VxWorks下只有:

1. 从Flash 跳到RAM执行;

2. 从RAM跳到Flash执行;

3. 从正常执行跳到异常扇区以及异常处理挂接代码的跳转(如果异常扇区与RAM不在32M内,如异常扇区放高地址)。

但这三种情况VxWorks都做了很好的处理。一时想不出哪里不安全,不稳定,可否指导下。谢谢了。


[align=right][color=#000066][此贴子已经被作者于2007-5-27 21:17:33编辑过][/color][/align]

共17条 2/2 1 2 跳转至

回复

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