你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【源码】STM32的另类Bootloader(YAB),F103/F4/L4/F7,STLINK-V3MINI  

[复制链接]
radio2radio 发布时间:2020-7-18 11:27
也开始玩儿Bootloader,闲着也是闲着。% ]- `( Z7 Q+ u$ C" A' L* e  l

7 V5 u* I5 U: ~  ]) k9 Y3 |5 X8 m 2020-07-20:主角登场,源码已经上传github,同时也放在了下面。  % K5 x( c( x( ?" z, m( p! j2 |
2020-07-24:  大规模更新YAB。   
+ {  R% {6 i$ `3 _# G" a" C2020-12-26:  增加了F103, F407, L433, F723的样板工程,是内部Flash模拟U盘的。     d1 a: R( `2 f# l# s* e

: N# _7 W% D# L& c5 L4 P% L2 C7 ?5 Ghttp://github.com/RadioOperator/Yet_Another_Bootloader! w  G% T/ Q. z5 S* S: y% j9 w
5 i' a5 i% H" R1 c1 l1 N; \/ i
应该不难移植到其他有正常MSC功能的IC上面,特别是STM32,许多库函数名字都一模一样(HAL)。& q- l. o  X  N- c  s" @: r

5 P! q1 s1 N4 @目标IC:STM32F103,STM32F407, STM32L433,STM32F723, STLINK-V3MINI板等。8 I, @1 N$ `' V" r; m& @
目标Bootloader:   USB MSC,PC拖拽下载,不需要上位机软件。
* g9 P$ w2 h: e- y# a! |8 H' G, {3 ^
0 b/ P& E4 t3 N. J4 C) SYAB程序的大小,一般都小于16KB,直接用CubeMX开出来的,只依靠AC6的最小优化。
4 l, m9 J+ w4 _$ u$ O; U' A9 E其余的全部Flash,都可以由用户使用。例如128KB的F103,用户APP最大可以用112KB。5 u+ I) K( C5 }9 d, |

) S' m4 {+ j+ }: ^: S* q% {* xSTLINK-V3MINI用的YAB,有点特别和复杂。. D' D- T2 J5 M( k- b/ d
这个我做到了可以和原厂的STLINK-V3的Bootloader共存,这样就实现了随便刷来刷去,不担心搞坏STLINK-V3了。) A# n' @: l+ P" h- H
因为STLINK-V3MINI的MSC模拟U盘是开在RAM里面的,最大192KB。Flash可以分出两块出来,可以安装两个不同的程序,实现两种功能。
6 d( s, z$ B: K7 d* Z5 O0 f: k8 Y/ s
  |# b. q, y! h1 q2 v9 S. D详情在源码里面都有:
! J# S) j2 C  U2 ~4 c3 [2 A; H& Y% C1 ?7 I2 T; S) j. n
( C5 J8 [- ^! x9 U  ]/ d' u7 E

* T6 f; l0 r1 t6 w6 a
STLINKv3_YAB.jpg

Yet_Another_Bootloader-master20201226.zip

下载

7.23 MB, 下载次数: 130

1 收藏 10 评论21 发布时间:2020-7-18 11:27

举报

21个回答
radio2radio 回答时间:2020-7-21 11:09:24
乐天乐 发表于 2020-7-21 08:320 E" H* X6 P8 z8 w+ w- m) k% h
高手啊!请问怎么把block设定为4096大小,而不是默认的512,好像设置变了会死机 ...

2 t* u5 X- F1 F8 i/ i# [不太明白您的意思,为什么需要4K的block。 哪里死机了,是MSC不正常,还是下载的APP会死机。
: \# `. R+ o4 n& i. t6 R6 p8 S  j& H* {& b. b9 w+ }; j) r- p, u
现在的程序中,预先格式化的是512一个Sector,和1-Cluster=1-Sector,FAT12的基本设置,就像一只192KB的软盘一样。0 S7 q7 A9 ~. y9 Y- w/ ?. ?
! J' F3 M+ q' p4 z. t% O6 i4 u
我刚刚试过,在PC上,可以把这个MSC格式化成4K的,U盘功能正常。 下载APP程序就应该再调整计算方法。
goyhuan 回答时间:2020-7-22 11:09:39
radio2radio 发表于 2020-7-21 11:09- M" v4 G% `, ~; N$ H
不太明白您的意思,为什么需要4K的block。 哪里死机了,是MSC不正常,还是下载的APP会死机。* F2 d( R! z1 B. H

# z) M) w6 m6 z" F. m现在的程序 ...
4 b6 {. H0 ~7 @) [5 l
就是想把U盘映射到W25Q64 ,将 8M 的容量分为 128 个块(Block),每个块大小为 64K 字节,每个块又分为 16
" H, R0 J% e4 z个扇区(Sector),每个扇区 4K 个字节。W25Q64 的最少擦除单位为一个扇区,也就是每次必须擦除 4K 个字节。
radio2radio 回答时间:2020-7-22 12:15:22
乐天乐 发表于 2020-7-22 11:095 j+ I, F1 z- }5 ~1 Q& f5 `1 z6 L
就是想把U盘映射到W25Q64 ,将 8M 的容量分为 128 个块(Block),每个块大小为 64K 字节,每个块又分为 1 ...

' V8 i& X9 \, m, `5 A软件上面没有问题,当然最好是可以找到样板例程,否则就得自己写驱动代码。# _$ I2 H3 @! u% [( B, t' T
- S' z+ l, _0 \) j: g
有太多现成的,STM32的SPI口驱动SD卡实现U盘功能的程序,可以参考。 我没有详细看过,不知道是否可行。
radio2radio 回答时间:2020-7-19 09:48:33
坊间有各种bootloader,大部分都是需要上位机软件配合的,麻烦。
0 R" _1 W% r# E: H: b/ C我比较欣赏DAPLINK的MSC拖拽下载的那种。
4 Q9 c+ y4 d2 K5 g2 J% V+ U
radio2radio 回答时间:2020-7-20 22:15:50
源码:一楼有更新,添加了样板工程的源码,闪灯的。
goyhuan 回答时间:2020-7-21 08:32:17
高手啊!请问怎么把block设定为4096大小,而不是默认的512,好像设置变了会死机
yklstudent 回答时间:2020-7-21 08:47:50
主要受限USB+程序大小,感觉还是串口通用性太强
weiwei4 回答时间:2020-7-22 10:06:10
楼主厉害了
radio2radio 回答时间:2020-7-22 12:25:06
weiwei4 发表于 2020-7-22 10:06
9 H( L* J5 ^1 n) Q楼主厉害了
7 J& ^% i8 d: U, g7 r+ ^7 y, ]
没有什么难度,我是搬砖的,把能用砖头放到合适的地方而已。
& q" X- p; s% F看过源码就可以知道,真正我自己键盘打出的代码不多。
radio2radio 回答时间:2020-7-24 18:25:59
今天大规模更新,STLINK-V3MINI用的YAB,可以直接用USB刷进去!!!连焊接SWD的线都免了。
Kevin_G 回答时间:2020-9-28 10:43:47
大赞
radio2radio 回答时间:2020-12-8 19:31:14
今天,又有更新,增加了F103,F407,F723等“USB模拟U盘”的代码,不再是STLINK-V3MINI专用的了。+ L# J3 H7 e9 p2 L; q) ?' ^
8 M! j# o9 ^: S! }1 P. s0 k& c
所以标题也修改了,新的源代码还是放在了一楼。
STMWoodData 回答时间:2020-12-9 09:04:36
提示: 作者被禁止或删除 内容自动屏蔽
赤蛛 回答时间:2020-12-12 10:50:54
我用STM32F407测试,Bootloader大小是17K,刚好超一个sector了。现在用了2个sector。
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版