主题 : 咨询LPC2468的U-BOOT问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 65198
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2012-03-15
最后登录: 2012-06-26
楼主  发表于: 2012-03-15 16:05

 咨询LPC2468的U-BOOT问题

KEIL 编译的程序是将CODE段存储在片内FLASH,将RW-DATA 存储在SRAM中

现在我想移植UBOOT, 如果 FLASH 拷贝到SRAM ,内存不够(只有98K),能否只拷贝DATA . BSS段拷贝过去SRAM ,而将CODE段依然存储在
FLASH中,因为片内FLASH是直接直接读取指令的

谢谢~~
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2012-03-16 23:47
看起来你需要实现XIP(eXecute In Place)方式的U-Boot。我想大概需要做到

1. 在链接脚本里指定code和read only的data段地址对应片内Flash的映射地址,read write的data和bss段对应SRAM映射地址;
2. 在启动部分的代码里实现复制rw data到SRAM的逻辑。BSS段是未初始化的数据,不需要复制,只要用清空SRAM对应的地址范围然后访问就可以了。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."