嵌入式技术论坛
直播中

王刚

8年用户 1352经验值
私信 关注
[问答]

使用qboot制作BootLoader失败想请问一下我是哪里没配置好吗

bootloader启动提示
\ | /

RT - Thread Operating System
/ | \ 4.0.2 build Apr 20 2021
2006 - 2019 Copyright by rt-thread team
[SFUD] Find a Winbond flash chip. Size is 8388608 bytes.
[SFUD] norflash0 flash device is initialize success.
[D/FAL] (fal_
Qboot startup ...
Qboot version : V1.0.5 2020.10.05
[D/FAL] (fal_flash_init:63) Flash device | stm32_onchip | addr: 0x08000000 | len: 0x00040000 | blk_size: 0x00000800 |initialized finish.
[D/FAL] (fal_flash_init:63) Flash device | norflash0 | addr: 0x00000000 | len: 0x00800000 | blk_size: 0x00001000 |initialized finish.
[I/FAL] ==================== FAL partition table ====================
[I/FAL] | name | flash_dev | offset | length |
[I/FAL] -------------------------------------------------------------
[I/FAL] | bl | stm32_onchip | 0x00000000 | 0x0001b800 |
[I/FAL] | app | stm32_onchip | 0x0001b800 | 0x00024800 |
[I/FAL] | factory | norflash0 | 0x00000000 | 0x00100000 |
[I/FAL] | download | norflash0 | 0x00100000 | 0x00100000 |
[I/FAL] =============================================================
[I/FAL] RT-Thread Flash Abstraction Layer (V0.5.0) initialize success.
Press [Enter] key into shell in 5 s : key into shellFlash device | stm32_onchip | addr: 0x08000000 | len: 0x00040000 | blk_size: 0x00000800 |initialized finish.
[D/FAL] (fal_flash_init:63) Flash device | norflash0 | addr: 0x00000000 | len: 0x00800000 | blk_size: 0x00001000 |initialized finish.
[E/Qboot] Qboot firmware check fail. firmware infomation check fail.
[E/Qboot] No legitimate application.
[I/Qboot] Try resume application from download
[E/Qboot] Qboot firmware check fail. firmware infomation check fail.
[I/Qboot] Try resume application from factory
[E/Qboot] Qboot firmware check fail. firmware infomation check fail.
app的连接脚本

1.jpg

使用的芯片是F103RCT6,256K的flash。参考教程制作了BootLoader,测试fal分区这些可以正常读写。然后制作app,更改起始地址0x0001b800,直接用rtthreadstudio下载。启动后提示没有正确的app,无法跳转至app执行

想请问一下我是哪里没配置好吗

回帖(6)

李霞

2022-9-14 11:31:49
首先看到你的Qboot firmware check fail,说明固件检测没有通过。请检查一下原因。
举报

王刚

2022-9-14 11:32:02
是的,更改qboot.h中的 #define QBOOT_APP_ADDR 0x0801b800,可以跳转至app执行了。
另外请问直接在bootloader中使用ymodem_ota下载固件是可行的吗,我打开qboot的调试模式,在BootLoader启动后按回车进入qboot 命令行,执行ymodem_ota命令(使用的xshell),提示update firmware fail。芯片flash有限,不想在app中添加ota模块
举报

李明

2022-9-14 11:32:20
/**
* Function    ota_app_vtor_reconfig
* Description Set Vector Table base location to the start addr of app(RT_APP_PART_ADDR).
*/
static int ota_app_vtor_reconfig(void)
{
    #define NVIC_VTOR_MASK   0x3FFFFF80
    /* Set the Vector Table base location by user application firmware definition */
    SCB->VTOR = RT_APP_PART_ADDR & NVIC_VTOR_MASK;
    return 0;
}
INIT_BOARD_EXPORT(ota_app_vtor_reconfig);
在APP端你要添偏移代码 ,其中RT_APP_PART_ADDR = 0x0801B800
举报

王刚

2022-9-14 11:32:25
嗯嗯,重定向了的。先去的问题是它还没有跳入APP执行,刚刚看了qboot里面还有些宏定义没改好。
举报

李明

2022-9-14 11:32:34
我反正试过有时候直接烧录APP跳转也会失败,奇奇怪怪的。如果还不行,就打开OTA,用xshell传文件进去试一下能不能正常。
举报

张杰

2022-9-14 11:32:43
试着在shell里面运行一下qboot probe, 看下结果
举报

更多回帖

发帖
×
20
完善资料,
赚取积分