打印

大家先告诉我有什么法子能实现

[复制链接]
502|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyjie|  楼主 | 2018-8-8 15:45 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
我们的DSP程序(无OS)最近要做一个bootloader程序(可用来更新应用程序的程序),有个比较xx的想法:bootloader程序和应用程序放到一个工程中,生成一个.out文件,据说能方便生产。
我的理解是,这样做相当于把两个程序(bootloader和应用程序)链接到一起,但各自程序空间完全独立,各自代码完全不能有调用关系,只是bootloader程序运行完后jump到应用程序。我觉得烦的地方在于在进入mian函数之前的一段启动代码(初始化c语言运行环境,常量,堆栈初始化)的安置:
1、  首先这段启动代码是在哪个文件中,rts2800.lib还是某asm文件里?怎么将其定位到特定地址空间?
2、  如果这两个程序在一个工程中,只有一个mian函数,并这个启动代码只有一个。显然在更新应用程序的时候应该将应用程序相关的启动代码也更新掉,那么这个启动代码应该定位到应用程序区(能和应用程序一道被更新掉),貌似要按这样的路径才行:

相关帖子

沙发
wyjie|  楼主 | 2018-8-8 15:49 | 显示全部楼层
假如解决了启动代码的定位问题,那么bootloader程序的启动代码又如何算呢,怎样能使bootloader与启动代码无关呢,或者在bootloader程序中实现启动代码功能?
撇开这个方案如何BS/SB,大家先告诉我有什么法子能实现吧。

使用特权

评论回复
板凳
wyjie|  楼主 | 2018-8-8 16:02 | 显示全部楼层

我的程序在片内Flash,目的是bootloader程序和应用程序同在一个out文件,然后实现只更新应用程序。

使用特权

评论回复
地板
wyjie|  楼主 | 2018-8-8 16:04 | 显示全部楼层
哥们,你没理解我的意思啊

使用特权

评论回复
5
wyjie|  楼主 | 2018-8-8 16:12 | 显示全部楼层
是啊,再说吧,谢谢各位啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

927

主题

12706

帖子

5

粉丝