硬汉嵌入式论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: eric2013
收起左侧

[BOOT/IAP] V7用户手册系统BootLoader章节相关资源整理汇总下载(2020-02-22)

  [复制链接]

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2021-5-28 16:41:33 | 显示全部楼层
硬汉哥,h7那种app放在emmc中升级的bootloader教程有吗
回复

使用道具 举报

2

主题

70

回帖

76

积分

初级会员

积分
76
发表于 2021-9-22 17:28:20 | 显示全部楼层
请问系统BootLoader除了不用写bootload代码外还有什么优势?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2021-9-23 09:13:19 | 显示全部楼层
yuanzhongda 发表于 2021-5-28 16:41
硬汉哥,h7那种app放在emmc中升级的bootloader教程有吗

这个没有教程。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2021-9-23 09:14:19 | 显示全部楼层
sup999 发表于 2021-9-22 17:28
请问系统BootLoader除了不用写bootload代码外还有什么优势?

如果需要上位机升级,上位机也省了。
回复

使用道具 举报

2

主题

70

回帖

76

积分

初级会员

积分
76
发表于 2021-9-23 14:19:37 | 显示全部楼层
eric2013 发表于 2021-9-23 09:14
如果需要上位机升级,上位机也省了。

自己做的上位机比较灵活吧,可以选择不同的设备,进行升级,便于管理
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2021-9-24 09:14:03 | 显示全部楼层
sup999 发表于 2021-9-23 14:19
自己做的上位机比较灵活吧,可以选择不同的设备,进行升级,便于管理

也可以。
回复

使用道具 举报

12

主题

68

回帖

104

积分

初级会员

积分
104
发表于 2021-12-24 12:08:57 | 显示全部楼层
硬汉哥,我在F767和F302中使用系统的BootLoader,但是stm32cubeprogramer 无法读取到usb,在f4就可以系统boot的地址也按照手册做了修改:F76xx的系统boot地址是0x1FF00000

代码如下:int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */
        HAL_Delay(500);
  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
//  MX_TIM3_Init();
//  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
                if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) == GPIO_PIN_SET)
                {
//                        /* Jump to user application */
//                        JumpAddress = *(__IO uint32_t*) (FLASHLOAD_ADDRESS + 4);
//                        JumpToApplication = (pFunction) JumpAddress;
//                        /* Initialize user application's Stack Pointer */
//                        __set_MSP(*(__IO uint32_t*) FLASHLOAD_ADDRESS);
//                        JumpToApplication();
                        JumpToBootloader();
                }
               
               
                HAL_Delay(1000);
               
                HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0|GPIO_PIN_1);
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}



static void JumpToBootloader(void)
{
        uint32_t i=0;
        void (*SysMemBootJump)(void);        /* 声明一个函数指针 */
        __IO uint32_t BootAddr = 0x1FF00000; /* STM32F7的系统BootLoader地址 */

        /* 关闭全局中断 */
        DISABLE_INT();

        /* 关闭滴答定时器,复位到默认值 */
        SysTick->CTRL = 0;
    SysTick->LOAD = 0;
    SysTick->VAL = 0;

        /* 设置所有时钟到默认状态,使用HSI时钟 */
        HAL_RCC_DeInit();

        /* 关闭所有中断,清除所有中断挂起标志 */
        for (i = 0; i < 8; i++)
        {
                NVIC->ICER[i]=0xFFFFFFFF;
                NVIC->ICPR[i]=0xFFFFFFFF;
        }       

        /* 使能全局中断 */
        ENABLE_INT();

        /* 设置重映射到系统Flash */
//        __HAL_SYSCFG_REMAPMEMORY_SYSTEMFLASH();
       
        /* 跳转到系统BootLoader,首地址是MSP,地址+4是复位中断服务程序地址 */
        SysMemBootJump = (void (*)(void)) (*((uint32_t *) (BootAddr + 4)));

        /* 设置朱堆栈指针 */
        __set_MSP(*(uint32_t *)BootAddr);
       
//        /* 在RTOS工程,这条语句很重要,设置为特权级模式,使用MSP指针 */
//        __set_CONTROL(0);

        /* 跳转到系统BootLoader */
        SysMemBootJump();

        /* 跳转成功的话,不会执行到这里,用户可以在这里添加代码 */
        while (1)
        {

        }
}


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2021-12-24 14:32:15 | 显示全部楼层
weboser 发表于 2021-12-24 12:08
硬汉哥,我在F767和F302中使用系统的BootLoader,但是stm32cubeprogramer 无法读取到usb,在f4就可以系统bo ...

正常使用是否正常,也就是直接设置你的boot引脚能正常进入不。
回复

使用道具 举报

12

主题

68

回帖

104

积分

初级会员

积分
104
发表于 2021-12-24 14:53:37 | 显示全部楼层
eric2013 发表于 2021-12-24 14:32
正常使用是否正常,也就是直接设置你的boot引脚能正常进入不。

非常感谢您的回复!直接设置boot引脚没有试过诶!我去试试看
1.而且还有一个问题就是,直接移植这个,keil线看的时候,这个JumpToBootloader函数的地方不能打点断,也就是说没有被编译到程序里面去,不知道为啥
2. “第 37 行,将系统 bootloader 的地址映射到 0x0000 0000。这点非常重要,根本原因是 F4 的系统
bootloader 要从 0x00000000 地址读取中断向量"关于这个是只有F4是这样吗?这块在手册哪个地方能查看,我看手册中断向量表的起始地址都是0x0000000,没看出区别
3.还有关于这个usb的系统BootLoader,我理解是不需要自己配置usb的外设的是?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2021-12-25 09:48:10 | 显示全部楼层
weboser 发表于 2021-12-24 14:53
非常感谢您的回复!直接设置boot引脚没有试过诶!我去试试看
1.而且还有一个问题就是,直接移植这个,ke ...

1、这个应该是编译器的优化问题,高优化对调试的影响比较大,建议以实际运行为准。
2、这个帖子做了很好的解释:【不是问题的问题】为什么STM32的Flash地址要设置到0x08000000
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109321
3、是的,使用系统BootLoader,不需要用户设置任何东西。
回复

使用道具 举报

12

主题

68

回帖

104

积分

初级会员

积分
104
发表于 2021-12-25 11:18:56 | 显示全部楼层
eric2013 发表于 2021-12-25 09:48
1、这个应该是编译器的优化问题,高优化对调试的影响比较大,建议以实际运行为准。
2、这个帖子做了很好 ...

1。优化关闭了,F767是可以正常进入到系统系统boot的,多谢硬汉哥
2。但是F302不能,感觉是我这块板子的USB有问题,用STM32Cube只配置了USB CDC,F767正常能扫描到虚拟串口,但是F302扫描不到
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2021-12-25 13:31:49 | 显示全部楼层
weboser 发表于 2021-12-25 11:18
1。优化关闭了,F767是可以正常进入到系统系统boot的,多谢硬汉哥
2。但是F302不能,感觉是我这块板子的 ...

这个得需要你自己搞下了。
回复

使用道具 举报

12

主题

68

回帖

104

积分

初级会员

积分
104
发表于 2021-12-27 23:00:44 | 显示全部楼层
eric2013 发表于 2021-12-25 13:31
这个得需要你自己搞下了。

好的,硬汉哥,第一次用USB
请问,使用cube配置好后,如果设备管理器扫描不到USB,这个可以从哪几方面的查找原因?
我看网上有说配置成device是d+和d-都不需要上拉或下拉
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2021-12-28 00:26:10 | 显示全部楼层
weboser 发表于 2021-12-27 23:00
好的,硬汉哥,第一次用USB
请问,使用cube配置好后,如果设备管理器扫描不到USB,这个可以从哪几方面的 ...

时钟,最关键的就是时钟,你看你的USB时钟配置为48MHz没
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-4-29 14:28:54 | 显示全部楼层
请教一下,教程说勾选STM32CubeProgrammer的“Run after programming”,通过软件进入boot的方式,烧录完会自动运行程序,是不是就不需要掉电了?我是这样理解的,但是烧录完程序没有运行,还是要掉电
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2022-4-30 10:40:05 | 显示全部楼层
fjn 发表于 2022-4-29 14:28
请教一下,教程说勾选STM32CubeProgrammer的“Run after programming”,通过软件进入boot的方式,烧录完会 ...

对,是这样的。
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2022-5-16 15:19:39 | 显示全部楼层
电脑端不能识别
image.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2022-5-16 15:56:30 | 显示全部楼层

USB转串口线不行,换个试试。
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2022-5-16 16:50:35 | 显示全部楼层
推荐一款USB转串口线?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2022-5-17 00:13:32 | 显示全部楼层
wbgbg20002000 发表于 2022-5-16 16:50
推荐一款USB转串口线?

FT232
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2022-5-27 10:14:51 | 显示全部楼层
请问STM32F的系统bootloader能否擦除?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2022-5-28 09:46:23 | 显示全部楼层
Mason81 发表于 2022-5-27 10:14
请问STM32F的系统bootloader能否擦除?

可以在app里面擦除boot。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2023-5-14 18:00:39 | 显示全部楼层
  17:53:34 : Chip ID: 0x419
  17:53:34 : BootLoader protocol version: 3.1
  17:53:35 : Response received from device: NACK
  17:53:35 : Error: GETID command not acknowledged!
  17:53:35 : Reemission of GetID command
  17:53:36 : Response received from device: NACK
  17:53:36 : Error: READ command not acknowledged at address: 0x1FFFC008
  17:53:39 : UPLOADING OPTION BYTES DATA ...
  17:53:39 :   Bank          : 0x00
  17:53:39 :   Address       : 0x1fffc000
  17:53:39 :   Size          : 16 Bytes
  17:53:39 : Response received from device: NACK
  17:53:39 : Error: READ command not acknowledged at address: 0x1FFFC000
  17:53:39 : Error: Uploading Option Bytes bank: 0 failed
  17:53:39 : Error: Initializing the Option Bytes failed
  17:53:39 : Disconnected from device.
想请问下这是什么意思,我哪里弄得不对?
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2023-5-14 18:01:50 | 显示全部楼层
  17:53:34 : Chip ID: 0x419
  17:53:34 : BootLoader protocol version: 3.1
  17:53:35 : Response received from device: NACK
  17:53:35 : Error: GETID command not acknowledged!
  17:53:35 : Reemission of GetID command
  17:53:36 : Response received from device: NACK
  17:53:36 : Error: READ command not acknowledged at address: 0x1FFFC008
  17:53:39 : UPLOADING OPTION BYTES DATA ...
  17:53:39 :   Bank          : 0x00
  17:53:39 :   Address       : 0x1fffc000
  17:53:39 :   Size          : 16 Bytes
  17:53:39 : Response received from device: NACK
  17:53:39 : Error: READ command not acknowledged at address: 0x1FFFC000
  17:53:39 : Error: Uploading Option Bytes bank: 0 failed
  17:53:39 : Error: Initializing the Option Bytes failed
  17:53:39 : Disconnected from device.
想请问下这个错误是啥意思?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2023-5-15 11:45:44 | 显示全部楼层
徐朗123 发表于 2023-5-14 18:01
17:53:34 : Chip ID: 0x419
  17:53:34 : BootLoader protocol version: 3.1
  17:53:35 : Response r ...

这个是不是STM32CubeProg弹出来的,你用的串口ISP?
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2023-5-16 20:55:43 | 显示全部楼层
eric2013 发表于 2023-5-15 11:45
这个是不是STM32CubeProg弹出来的,你用的串口ISP?

是STM32CubeProg弹出来的,用的串口ISP,感谢您的回复。昨天弄了一下午,最后发现串口必须要设置成偶校验,否则就失败!!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2023-5-17 11:13:03 | 显示全部楼层
徐朗123 发表于 2023-5-16 20:55
是STM32CubeProg弹出来的,用的串口ISP,感谢您的回复。昨天弄了一下午,最后发现串口必须要设置成偶校验 ...

好的,估计是串口线的问题。
回复

使用道具 举报

2

主题

21

回帖

27

积分

新手上路

积分
27
发表于 2023-7-4 18:57:38 | 显示全部楼层
请问硬汉哥这个自带的bootloader是只能从cube prog来下载吗?我现在进入BOOTLOADER使用串口调试助手发送hex文件可以吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2023-7-5 09:02:28 | 显示全部楼层
MaxDYi 发表于 2023-7-4 18:57
请问硬汉哥这个自带的bootloader是只能从cube prog来下载吗?我现在进入BOOTLOADER使用串口调试助手发送hex ...

不行,得知道协议才行。
回复

使用道具 举报

2

主题

13

回帖

19

积分

新手上路

积分
19
发表于 2023-7-26 09:25:07 | 显示全部楼层
eric2013 发表于 2021-3-12 16:21
系统bootloader不支持加密升级。不过你可以传输加密的bin文件,然后配合个自己做的boot实现。

老师,这个您说的这种方案有实现过的参考文档或教程吗?
回复

使用道具 举报

2

主题

13

回帖

19

积分

新手上路

积分
19
发表于 2023-7-26 10:07:24 | 显示全部楼层
eric2013 发表于 2021-3-12 16:21
系统bootloader不支持加密升级。不过你可以传输加密的bin文件,然后配合个自己做的boot实现。

想问老师,”系统bootloader不支持加密升级。不过可以传输加密的bin文件,然后配合个自己做的boot实现“。    ,所提自己做的boot和帖子里系统bootloader是一个东西吗?所提的这个方案是这个b站教程已经实施的吗?【BSP视频教程第19期:单片机BootLoader的AES加密实战,含上位机和下位机代码全开源】
https://www.bilibili.com/video/B ... 9adf9a9fa82857ec3a0\

刚开始玩32,有点摸不着头脑,希望指导下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2023-7-27 06:52:46 | 显示全部楼层
Le0122 发表于 2023-7-26 10:07
想问老师,”系统bootloader不支持加密升级。不过可以传输加密的bin文件,然后配合个自己做的boot实现“ ...

在你另外的帖子里面已经回复了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 10:01 , Processed in 0.454973 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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