STM32|STM32F469I-DISCO移植Linux4.13.12

玩 STM32 三年多一直看着网上各牛人的帖子,刚在 STM32F469I-DISCO 移植了 Linux4.13.12 抑制不住自己喜悦的心情来和大家分享。

嵌入式Linux系统由三部分组成:bootloader、kernel、root filesystem (引导程序、内核、根文件系统)

软件包下载:
https://github.com/mcoquelin-stm32/afboot-stm32 下载引导程序afboot-stm32-master.zip
https://www.kernel.org/下载最新的Linux内核linux-4.13.12.tar.xz
https://elinux.org/File:Stm32_mini_rootfs.cpio.bz2 下载文件系统 Stm32_mini_rootfs.cpio.bz2

软件包的编译:
这些软件包都在Ubuntu的系统中编译,省略编译工具的安装过程。
1,引导程序的编译:
AFBoot-STM32是由Andreas F?rber开发,它的主要优势是尺寸非常小,只有2KB左右。
解压afboot-stm32-master.zip得到afboot-stm32-master
cd afboot-stm32-master
make stm32f469i-disco

2, linux内核和根文件系统的编译
解压linux-4.13.12.tar.xz得到linux-4.13.12
修改linux-4.13.12/makefile
把250行改为ARCH?= arm
把251行改为CROSS_COMPILE?= arm-none-eabi-

修改linux-4.13.12/arch/arm/configs/stm32_defconfig
把25行改为CONFIG_DRAM_BASE=0x00000000

make stm32_defconfig
make menuconfig
在General setup --->Initramfs source file(s)下添加根文件系统Stm32_mini_rootfs.cpio.bz2。

make

烧录程序:
1、把引导程序afboot-stm32-master/stm32f469i-disco.bin下载到STM32F469I的flash地址0x08000000中
2、把Linux设备树linux-4.13.12/arch/arm/boot/dts/stm32f469-disco.dtb下载到STM32F469I的flash地址0x08004000中
3、把Linux镜像文件linux-4.13.12/arch/arm/boot/xipImage下载到STM32F469I的flash地址0x08008000中

接下来就是见证奇迹的时刻



敬告:
本文原创,欢迎转载^_^
转载请在文章醒目处注明:
原创作者ID:bruceyuanhong
【STM32|STM32F469I-DISCO移植Linux4.13.12】 原始博文链接:http://blog.sina.com.cn/s/blog_890188a80102xeye.html

    推荐阅读