初级会员

- 积分
- 86
- 金钱
- 86
- 注册时间
- 2016-1-22
- 在线时间
- 21 小时
|
标题实在不懂该怎么写才能凑够12个汉字了:|
移植linux到stm32,从两方面入手,一个是bootloader,一个是内核。
先说bootloader,我找到的现成的有两个,一个是u-boot,一个是afboot。
u-boot太复杂,我不想研究了。afboot可以,我试过,但是功能太受限了,因为它必须跟
内核、设备树挤在stm32的flash里,而stm32的flash太小了,内核都不能开太多东西。所
以我自己写了个winterboot(在gitee仓库里)。这个bootloader启动时把内核和设备树拷
贝到SDRAM中再跳转去内核,从而可以使用到更广阔的SDRAM空间。另外,这个
bootloader也支持引导普通的stm32固件(注意:引导Linux和引导普通固件是不同的)。
正在研究把固件搬移到SDRAM运行的同学也可以了解下。
然后是内核。内核好几年前就支持stm32了,我也就是配置了下而已,没改哪里。但是
我加了个功能:单步调试内核,这不论对于阅读内核源码还是调试内核都是有帮助的。
方法是使用STLink+OpenOCD,具体看gitee仓库。
我用的硬件是STM32F429I-Discovery,内核4.x。内核对它做的驱动并不多,有兴趣的
同学可以自己写写。
我的gitee仓库:
https://gitee.com/QHCH/linux-stm32.git
参考:
https://elinux.org/STM32#Bootloaders
|
|