硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5089|回复: 26
收起左侧

[技术讨论] 请问合并下载hex文件,怎么跳转到app程序

  [复制链接]

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
发表于 2020-12-2 16:19:25 | 显示全部楼层 |阅读模式
我现在有一段工序是将boot+app的hex通过jlink合并后,下载到lpc1768上,但是,我boot代码里是根据flash的标志位来判断是否有程序进而跳转到app,那么合并下载,怎么处理会自动跳转到app程序吗?
硬汉哥有方法啊?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107008
QQ
发表于 2020-12-3 09:17:53 | 显示全部楼层
APP程序的xxx.S启动文件里面开一个DCD做版本号,用来判断比较方便。
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-3 10:16:54 | 显示全部楼层
eric2013 发表于 2020-12-3 09:17
APP程序的xxx.S启动文件里面开一个DCD做版本号,用来判断比较方便。

那请问怎么添加,汇编不太会啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107008
QQ
发表于 2020-12-4 09:31:30 | 显示全部楼层
wdliming 发表于 2020-12-3 10:16
那请问怎么添加,汇编不太会啊

1.png
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-4 09:50:17 | 显示全部楼层

看不太懂,。。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107008
QQ
发表于 2020-12-5 09:34:40 | 显示全部楼层
wdliming 发表于 2020-12-4 09:50
看不太懂,。。。。

不好意思,添加错文件了。。是下面这个
QQ截图20201205093531.png
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-5 12:08:43 | 显示全部楼层
eric2013 发表于 2020-12-5 09:34
不好意思,添加错文件了。。是下面这个

哈哈哈,我去试试看,多谢多谢~
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-5 12:24:08 | 显示全部楼层
已经工程了,多谢多谢,居然有地方可以写。。。完美了
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-5 14:18:47 | 显示全部楼层
他这个dcd大小是固定的把?只能在reserve中使用了,这个理解对吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107008
QQ
发表于 2020-12-6 11:48:48 | 显示全部楼层
wdliming 发表于 2020-12-5 14:18
他这个dcd大小是固定的把?只能在reserve中使用了,这个理解对吗?

可以在中断向量表末尾再开新的。
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-6 15:28:36 | 显示全部楼层
eric2013 发表于 2020-12-6 11:48
可以在中断向量表末尾再开新的。

多谢,这样就比较灵活了
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-11 17:39:04 | 显示全部楼层
eric2013 发表于 2020-12-5 09:34
不好意思,添加错文件了。。是下面这个

发现这个0x000140 只能在app启动文件中写入,boot中写不了的。正常的吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107008
QQ
发表于 2020-12-12 01:42:09 | 显示全部楼层
wdliming 发表于 2020-12-11 17:39
发现这个0x000140 只能在app启动文件中写入,boot中写不了的。正常的吗?

boot也可以
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-12 11:20:01 | 显示全部楼层

我测试了,lpc1768的boot程序是写不进去,不知道stm32能不能写
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-12 11:20:32 | 显示全部楼层

有空了stm32试试看,看boot能不能写这个特殊的值
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107008
QQ
发表于 2020-12-13 09:05:30 | 显示全部楼层
wdliming 发表于 2020-12-12 11:20
有空了stm32试试看,看boot能不能写这个特殊的值

STM32可以。
回复

使用道具 举报

10

主题

45

回帖

75

积分

初级会员

积分
75
发表于 2020-12-14 10:00:31 | 显示全部楼层
eric2013 发表于 2020-12-5 09:34
不好意思,添加错文件了。。是下面这个

写了DCD,那怎么获取,还请讲解一下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107008
QQ
发表于 2020-12-14 10:29:36 | 显示全部楼层
0520kuang 发表于 2020-12-14 10:00
写了DCD,那怎么获取,还请讲解一下

APP首地址加DCD的偏移地址即可
回复

使用道具 举报

335

主题

2037

回帖

3047

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3047
发表于 2020-12-14 10:42:45 | 显示全部楼层
本帖最后由 caicaptain2 于 2020-12-14 11:29 编辑
eric2013 发表于 2020-12-5 09:34
不好意思,添加错文件了。。是下面这个

这个太棒了! 居然这里还有保留字节,可以自己随便写哦!

补充一下,可以这么写,字符用DCB,数字用DCD。
HWVer        DCB     "ABC1"                     ; Reserved 硬件版本 汇编里面的字符串不会自带null这个结束符。这个刚好4个字节。
SWVer        DCD     0x20201214                 ; Reserved 软件版本 "20201214" = 2020年12月14日

回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-14 11:18:09 | 显示全部楼层

stm32的可以,lpc1768的不行
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-14 11:21:37 | 显示全部楼层

应该是lpc的boot低地址这里有了flash保护导致的。才写不进去
回复

使用道具 举报

6

主题

89

回帖

107

积分

初级会员

积分
107
发表于 2020-12-15 11:45:43 | 显示全部楼层
LPC 是按页擦写,写入时候有好像是整页写的
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-15 13:21:41 | 显示全部楼层
mygod 发表于 2020-12-15 11:45
LPC 是按页擦写,写入时候有好像是整页写的

你说的和我的不是一回事
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-16 16:07:57 | 显示全部楼层
硬汉哥,想起一个问题,就是app跳转到iap的时候,怎么处理呢?我软件复位后进入boot程序,boot程序依然检测到app,又重新调回到app了。有啥办法吗?
回复

使用道具 举报

335

主题

2037

回帖

3047

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3047
发表于 2020-12-21 10:41:29 | 显示全部楼层
wdliming 发表于 2020-12-16 16:07
硬汉哥,想起一个问题,就是app跳转到iap的时候,怎么处理呢?我软件复位后进入boot程序,boot程序依然检测 ...

“app跳转到iap的时候”,这时候应该没有断电吧? 可以在RAM里面写个标志位,说明是从app特意跳出来的。
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-21 11:06:41 | 显示全部楼层
caicaptain2 发表于 2020-12-21 10:41
“app跳转到iap的时候”,这时候应该没有断电吧? 可以在RAM里面写个标志位,说明是从app特意跳出来的。

嗯嗯
你的方式不错,解决了
回复

使用道具 举报

73

主题

1200

回帖

1419

积分

至尊会员

积分
1419
 楼主| 发表于 2020-12-21 11:07:21 | 显示全部楼层
caicaptain2 发表于 2020-12-21 10:41
“app跳转到iap的时候”,这时候应该没有断电吧? 可以在RAM里面写个标志位,说明是从app特意跳出来的。

我是使用的flash内容,不同sram,sram我怕不可靠
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 09:11 , Processed in 0.353337 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表