\ | /
- 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.
使用的芯片是F103RCT6,256K的flash。参考教程制作了BootLoader,测试fal分区这些可以正常读写。然后制作app,更改起始地址0x0001b800,直接用rtthreadstudio下载。启动后提示没有正确的app,无法跳转至app执行
想请问一下我是哪里没配置好吗
/**
* 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
是的,更改qboot.h中的 #define QBOOT_APP_ADDR 0x0801b800,可以跳转至app执行了。
另外请问直接在bootloader中使用ymodem_ota下载固件是可行的吗,我打开qboot的调试模式,在BootLoader启动后按回车进入qboot 命令行,执行ymodem_ota命令(使用的xshell),提示update firmware fail。芯片flash有限,不想在app中添加ota模块
我的现象和你一样,但你通过qboot.h中定义QBOOT_APP_ADDR,而我这个本身就没有问题,所以不知怎么解决
@杰瑞鼠
怎么解决大佬,找到原因了吗