5837|11

89

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

关于以特网bootloader [复制链接]

试了下 ext_demo_1, ext_demo_2 以及 boot_eth_ext 这几个例子, 突然有个问题。
能不能用以特网bootloader下载代码到片外flash, 然后再下载另一部分常用的代码到片内flash。 设备上电后开始运行片内flash的代码(不是bootloader),偶尔运行下一片外flash的代码。  各位觉得如何实现啊?  谢谢!

最新回复

1. 如果你使用的时9B96的开发板,可以直接把芯片替换成9D96,它们是P2P兼容的。这样可以省去你很多麻烦。 2.  一般情况我们在对代码处理的时候,尽量不要吧代码区的数据放在外部的区域,如果是在是FLASH不够用,可以把常量的数据放在外部,这样选择的灵活性更大,无论有没有EPI的MCU,都可以使用,不会限制你选型。在使用时,更改访问接口函数既可以。 3.  你的想法是可以实现的,你确定一个片内地址,让BOOT结束后直接跳转到该地址去。但是如果部分在片内,部分在片外,这样在切换的时候也许会比较麻烦。所以,如果你片外的程序不是太大,也不是完全都需要调用,那就可以在片内的应用程序做一段代码,根据你的实际应用,把片外的代码拷贝到内部的RAM来,完成后把指针指向RAM,这样就实现了灵活调用具体产品需要的外部代码,也不影响你对速度的要求。  详情 回复 发表于 2012-1-13 11:02
 
点赞 关注

回复
举报

194

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
不知道能不能可以
不过我觉得可能不行,除非你写一个boot程序常驻SRAM,
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 

回复 楼主 tekkon 的帖子

我觉得是可以的。
 
 
 

回复

400

帖子

0

TA的资源

五彩晶圆(中级)

4
 
没搞明白你这种想法是想用于什么样的场景。
实现你描述的功能是有办法的,想了解下你的应用情况,根据应用情况分析下看有没有更合理的方法。
 
 
 

回复

188

帖子

0

TA的资源

纯净的硅(中级)

5
 

回复 楼主 tekkon 的帖子

那片上的代码要设计好,应该是可以实现的,有点感觉像通过internet升级程序。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(高级)

6
 

回复 楼主 tekkon 的帖子

不行,bootloader都是先运行的,它决定跳到flash的哪个起始地址执行程序代码
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(高级)

7
 

回复 板凳 Study_Stellaris 的帖子

恩  我也觉得可行  但是不知道如何操作  还在寻找方案。。。
你有什么建议么?
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(高级)

8
 

回复 4楼 Triton.zhang 的帖子

应用情况就是我的测试代码已经把9B96的片上 flash和SRAM用完了,  我买了FLASH/SRAM/LCD 的那个扩展盘插到了9B96开发板上, 打算把不常用的代码下载到片外flash/sram.

程序想下载到片外flash就得用bootloader, 但是我不希望一上电就像例程那样从片外flash开始运行,EPI 8位的总线运行速度实在太慢, 我需要他直接从片内的代码开始运行。 bootloader常驻片内sram,但是他只是下载代码时运行。等片外,片内代码都下载成功后,bootloader就退居二线了。

赐教啊!!!
 
 
 

回复

400

帖子

0

TA的资源

五彩晶圆(中级)

9
 

1. 你的代码到底需要多少,是代码占去了空间还是你的数据占据了空间。如果是数据占用了大量空间,建议直接把数据放在外部FLASH中更合理点。

2. 如果9B96的256K FLASH不够用,那么和它PintoPin兼容的512K的9C97有512K的FLASH,是否足够你使用。

3. 如果你确定要采用你现在的想法,那么有个办法,就是在代码里做一段从FLASH载入代码到RAM的程序,把FLASH中的代码拷贝到内部RAM来使用,然后PC指针指向

   RAM,这样做的缺点是回占用大量的RAM,所以你需要对你的应用进行一个归类。然后在分析实施的可能性。

 

QQ:906411450

triton.zhang

 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(高级)

10
 

回复 9楼 Triton.zhang 的帖子

谢谢triton.zhang啊!  
我看了下和这个项目非常相似的另一个项目,是用LPC2292做的,
406K 的代码 + 150K的 const 数据放到了flash(片上+片外)
468K的数据放到了sram(片上+片外)

这个新项目差不多也会用掉这么多的flash和sram,只不过新项目会使用LM3S9D96(有512K的片上flash,96K的片上sram), 我用的是LM3S9B96(256K的片上flash,96K的片上sram)开发板, 所以不管怎样都得加片外sram的flash 。

你说的第三点我不是十分清楚,为什么需要加载flash到ram的代码?难道不能像boot_demo_eth和boot_demo2那样直接从应用程序起始地址0x1800开始运行?  谢谢!
 
 
 

回复

400

帖子

0

TA的资源

五彩晶圆(中级)

11
 
1. 如果你使用的时9B96的开发板,可以直接把芯片替换成9D96,它们是P2P兼容的。这样可以省去你很多麻烦。
2.  一般情况我们在对代码处理的时候,尽量不要吧代码区的数据放在外部的区域,如果是在是FLASH不够用,可以把常量的数据放在外部,这样选择的灵活性更大,无论有没有EPI的MCU,都可以使用,不会限制你选型。在使用时,更改访问接口函数既可以。
3.  你的想法是可以实现的,你确定一个片内地址,让BOOT结束后直接跳转到该地址去。但是如果部分在片内,部分在片外,这样在切换的时候也许会比较麻烦。所以,如果你片外的程序不是太大,也不是完全都需要调用,那就可以在片内的应用程序做一段代码,根据你的实际应用,把片外的代码拷贝到内部的RAM来,完成后把指针指向RAM,这样就实现了灵活调用具体产品需要的外部代码,也不影响你对速度的要求。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(高级)

12
 

回复 11楼 Triton.zhang 的帖子

恩  明白你的意思了  多谢啊!  :)

昨天尝试了另外一种方法,像qs-checkout那个例程一样,通过TFTP把代码下载到片外的flash,程序主要是在片上运行,只不过调图像和解压时会使用EPI而已。
准备再研究研究那几个例程和TI给的flash和sram模块。然后得想办法搞明白我这crossstudio的linker file怎么修改。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表