硬汉嵌入式论坛

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

[BSP视频教程] BSP视频教程第19期:单片机BootLoader的AES加密实战,含上位机和下位机代码全开源(2022-06-26)

  [复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-10-7 09:42:00 | 显示全部楼层
jinzhen107 发表于 2024-10-6 22:25
请问下,BOOTLAOD程序下载后,再下载运行的程序,地址也改变了,但是会自动把BOOTLOADER的程序擦除。  0x80 ...

H743和H750一个扇区大小是128KB,最小128KB,你这个0x8010000在64KB位置,这个是不可以的。
回复

使用道具 举报

0

主题

32

回帖

32

积分

新手上路

积分
32
发表于 2024-10-7 15:01:05 | 显示全部楼层
谢谢您!
我调整成128K就可以了。
我是看您的范例上面是64K
//#define AppAddr  0x08010000    /* APP地址 */  这个是原来BOOTLOADER的程序定义
回复

使用道具 举报

0

主题

32

回帖

32

积分

新手上路

积分
32
发表于 2024-10-7 16:00:09 | 显示全部楼层

问题找到,是滴答定时器初始化了2次到知道,但是跳转到App程序,滴答定时器无法进入中断,设置都正常

本帖最后由 jinzhen107 于 2024-10-7 19:46 编辑

跳转没有问题,不知道怎么原来我用了定时器T2触发T4。跳转后T2正常,T4不运行。只要把烧录地址改成0x08000000,定时器4就正常。

SCB->VTOR =        0x08000000|0x02000这次设置就解决了
回复

使用道具 举报

0

主题

32

回帖

32

积分

新手上路

积分
32
发表于 2024-10-7 20:52:24 | 显示全部楼层
请问下,在BOOTLOADER 能找到U盘。
但是无法打开文件
        sprintf(path, "%sROM.bin", USBDISKPath);
        result = f_open(&file, path, FA_OPEN_EXISTING | FA_READ);
//        result=f_open(&file, "0:ROM.BIN",FA_OPEN_EXISTING | FA_READ);
        if (result !=  FR_OK)
        {
                printf("Don't Find File : app.bin\r\n");
                return;
        }
这个地方打印出来是:printf("Don't Find File : app.bin\r\n");
我已经在U盘里面放了一个BOM.bin的文件。
回复

使用道具 举报

0

主题

32

回帖

32

积分

新手上路

积分
32
发表于 2024-10-7 22:50:56 | 显示全部楼层
        /* 第2步:打开文件 ***************************************************************/
        sprintf(path, "%sROM.bin", USBDISKPath);
        result = f_open(&file, path, FA_OPEN_EXISTING | FA_READ);
        HAL_Delay(2000);
        if (result !=  FR_OK)
        {
                printf("Don't Find File : app.bin\r\n");
                return;
        }   有些U盘加入HAL_Delay(2000); 这个延时,可以找到并且烧录成功
[22:46:15.791]接收←APP固件大小:62792
                    APP固件版本:V0.00
                    开始擦除剩余扇区 = 08020000
                    
[22:46:16.789]接收←当前完成编程:06%
                    当前完成编程:13%
                    当前完成编程:19%
                    当前完成编程:26%
                    当前完成编程:32%
                    当前完成编程:39%
                    当前完成编程:45%
                    当前完成编程:52%
                    当前完成编程:58%
                    当前完成编程:65%
                    当前完成编程
有些U盘加入这个延时,仍然不行。
[22:47:55.640]接收←ERROR: USB Disk is not ready!
                    
[22:47:57.648]接收←Don't Find File : app.bin

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-10-8 09:16:58 | 显示全部楼层
jinzhen107 发表于 2024-10-7 22:50
/* 第2步:打开文件 ***************************************************************/
        sprintf(path, ...

U盘有个重要的Process函数要一直调用者。另外就是有些U盘,兼容性确实一般。考虑格式化下试试。
回复

使用道具 举报

0

主题

32

回帖

32

积分

新手上路

积分
32
发表于 2024-10-8 16:27:07 | 显示全部楼层
谢谢您的建议。
我用F429的板子,2个U盘都正常,会不是是FAFS版本的差别,这个我看不懂。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-10-9 09:26:40 | 显示全部楼层
jinzhen107 发表于 2024-10-8 16:27
谢谢您的建议。
我用F429的板子,2个U盘都正常,会不是是FAFS版本的差别,这个我看不懂。

fatfs的话,可以试试每次读取512字节,你当前每次读取多少,

这样底层仅调用的单扇区的API,不调用multi bock的api了,看看是不是好用点。
回复

使用道具 举报

0

主题

32

回帖

32

积分

新手上路

积分
32
发表于 2024-10-9 21:08:00 | 显示全部楼层
512字节可以
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-10-10 08:30:43 | 显示全部楼层

那可能确实是multi block api没有正常执行。
回复

使用道具 举报

2

主题

23

回帖

29

积分

新手上路

积分
29
发表于 2024-11-26 10:23:12 | 显示全部楼层
老师。这个能转 iar版本么
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-11-27 08:02:59 | 显示全部楼层
Le0122 发表于 2024-11-26 10:23
老师。这个能转 iar版本么

可以制作成IAR的工程,只是我没有做IAR版的。
回复

使用道具 举报

2

主题

23

回帖

29

积分

新手上路

积分
29
发表于 2024-11-27 16:02:03 | 显示全部楼层
eric2013 发表于 2024-11-27 08:02
可以制作成IAR的工程,只是我没有做IAR版的。

有点麻烦呢,,,
我之前按您的教程给公司做了一个keil的bootloader工程,现在又因为keil版权问题,转IAR,,一堆问题,首先这个CMSIS导入了这个mbedtls的pack,会报很多错;
企业微信截图_17326945064324.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-11-28 08:43:33 | 显示全部楼层
Le0122 发表于 2024-11-27 16:02
有点麻烦呢,,,
我之前按您的教程给公司做了一个keil的bootloader工程,现在又因为keil版权问题, ...

手动添加源码吧,参考我这个帖子,就是手动添加的

RTX5全家桶源码综合模板发布V3.0,含FreeRTOS内核版本,将其打造成直接面向实际项目应用的综合框架(2024-10-30)
https://www.armbbs.cn/forum.php? ... 4516&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

2

主题

23

回帖

29

积分

新手上路

积分
29
发表于 2024-11-28 09:41:35 | 显示全部楼层
eric2013 发表于 2024-11-28 08:43
手动添加源码吧,参考我这个帖子,就是手动添加的

RTX5全家桶源码综合模板发布V3.0,含FreeRTOS内核版 ...

比较建议手动添加 mbedtls的源码么? 不使用CMSIS 库了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2024-11-29 07:50:36 | 显示全部楼层
Le0122 发表于 2024-11-28 09:41
比较建议手动添加 mbedtls的源码么? 不使用CMSIS 库了

这个分享还是CMSIS全家桶源码方式,只是没有使用RTE创建工程了,纯源码方式。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2025-4-15 08:32:56 | 显示全部楼层
硬汉哥,这个例子是用的STM32硬件AES吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
 楼主| 发表于 2025-4-16 11:41:57 | 显示全部楼层
MirrAKe 发表于 2025-4-15 08:32
硬汉哥,这个例子是用的STM32硬件AES吗?

不是,是用的MbedTLS里面的AES
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 02:14 , Processed in 0.339831 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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