完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
秉火stm32f429移植u-boot的
硬件平台个人文库:使用秉火stm32f429的核心板,搭配挑战者野火STM32的底板。 MCU: stm329igt6,1MB的内部闪存,256KB RAM的。 核心板: 8MB的外部SDRAM,IS42S16400J.16MB的外部SPI闪存,华邦25Q128FV。 终端:使用USART1做为终端,波特率115200。 移植参考模板:意法开发半导体公司的stm32板STM32F429-descovery。该开发板和秉火的STM32F429开发板资源非常类似,只需要修改和SDRAM的部分配置就可以了可以了。 U-Boot的版本: u_boot-2016.09,该版本的u-boot已经支持stm32f429-descovery下载地址 交叉compile-环境 配置编译 我使用的 CentOS 虚拟环境,使用 root 权限(非必要) 在根目录下创建一个:mkdir stm32f429ig 将上面下载的交叉编译器和U-Boot的源码放到这个目录下。 解压交叉编译器GCC-臂无- EABI - 5_4-2016q3-20160926-linux.tar.bz2到的/ opt /目录下。 焦油xjvf GCC -arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2 -C /opt/ [root@localhost stm32f429ig]# ls gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2 u-boot-2016.09.tar.bz2 [root@localhost stm32f429ig]# tar xjvf gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2 -C /opt/ 在环境变量中加入该路径以方便调用。在.bashrc的最后一句加入export PATH=$PATH:/opt/gcc-arm-none-eabi-5_4-2016q3/bin vim ~/.bashrc # .bashrc # User specific aliases and functions alias rm=‘rm -i’ alias cp=‘cp -i’ alias mv=‘mv -i’ # Source global definitions if [ -f /etc/bashrc ]; then 。 /etc/bashrc fi export PATH=$PATH:/opt/gcc-arm-none-eabi-5_4-2016q3/bin source ~/.bashrc 使修改的环境变量立即生效。 使用echo $PATH命令查看环境变量是否设置成功,使用 which arm-none-eabi-gcc 和 arm-none-eabi-gcc -v 命令查看交叉环境是否安装成功。 [root@localhost stm32f429ig]# vim ~/.bashrc [root@localhost stm32f429ig]# source ~/.bashrc [root@localhost stm32f429ig]# echo $PATH /usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/***in:/usr/***in:/***in:/home/cj/bin:/opt/gcc-arm-none-eabi-5_4-2016q3/bin:/opt/gcc-arm-none-eabi-5_4-2016q3/bin [root@localhost stm32f429ig]# which arm-none-eabi-gcc /opt/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi-gcc [root@localhost stm32f429ig]# arm-none-eabi-gcc -v Using built-in specs. COLLECT_GCC=arm-none-eabi-gcc COLLECT_LTO_WRAPPER=/opt/gcc-arm-none-eabi-5_4-2016q3/bin/。./lib/gcc/arm-none-eabi/5.4.1/lto-wrapper Target: arm-none-eabi Configured with: /home/build/work/GCC-5-build/src/gcc/configure --target=arm-none-eabi --prefix=/home/build/work/GCC-5-build/install-native --libexecdir=/home/build/work/GCC-5-build/install-native/lib --infodir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/info --mandir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/man --htmldir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/html --pdfdir=/home/build/work/GCC-5-build/install-native/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --enable-plugins --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-newlib --with-headers=yes --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/home/build/work/GCC-5-build/install-native/arm-none-eabi --build=i686-linux-gnu --host=i686-linux-gnu --with-gmp=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-mpfr=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-mpc=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-isl=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-cloog=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-libelf=/home/build/work/GCC-5-build/build-native/host-libs/usr --with-host-libstdcxx=‘-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm’ --with-pkgversion=‘GNU Tools for ARM Embedded Processors’ --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r,armv8-m.base,armv8-m.main Thread model: single gcc version 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496] (GNU Tools for ARM Embedded Processors) [root@localhost stm32f429ig]# yum install ncurses //不知道安装不是必须的,计算了保险 yum install ncurses-devel //不安装的话make menuconfig出错 yum install swig 第二步:解压u-boot,测试环境 解压u-boot:tar xjvf的u-boot-2016.09.tar.bz2 进入的u-boot-2016.09目录下:CD的u-boot-2016.09.tar.bz2 执行编译命令: 化妆mrproper 化妆stm32f429-discovery_defconfig make menuconfig后\不需要做任何修改 使ARCH =arm CROSS_COMPILE=arm-none-eabi- [root@localhost stm32f429ig]# ls gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2 u-boot-2016.09.tar.bz2 u-boot-2016.09 [root@localhost stm32f429ig]# cd u-boot-2016.09 [root@localhost u-boot-2016.09]# make mrproper [root@localhost u-boot-2016.09]# make stm32f429-discovery_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o SHIPPED scripts/kconfig/zconf.tab.c SHIPPED scripts/kconfig/zconf.lex.c SHIPPED scripts/kconfig/zconf.hash.c HOSTCC scripts/kconfig/zconf.tab.o HOSTLD scripts/kconfig/conf # # configuration written to .config # [root@localhost u-boot-2016.09]# make menuconfig HOSTCC scripts/kconfig/mconf.o HOSTCC scripts/kconfig/lxdialog/checklist.o HOSTCC scripts/kconfig/lxdialog/util.o HOSTCC scripts/kconfig/lxdialog/inputbox.o HOSTCC scripts/kconfig/lxdialog/textbox.o HOSTCC scripts/kconfig/lxdialog/yesno.o HOSTCC scripts/kconfig/lxdialog/menubox.o HOSTLD scripts/kconfig/mconf scripts/kconfig/mconf Kconfig *** End of the configuration. *** Execute ‘make’ to start the build or try ‘make help’。 [root@localhost u-boot-2016.09]# make ARCH=arm CROSS_COMPILE=arm-none-eabi- scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config.h UPD include/config.h 。.. CFG u-boot.cfg [root@localhost u-boot-2016.09]# ls api configs fs MAINTAINERS snapshot.commit u-boot.cfg arch disk include Makefile System.map u-boot.lds board doc Kbuild net test u-boot.map cmd drivers Kconfig post tools u-boot-nodtb.bin common dts lib README u-boot u-boot.srec config.mk examples Licenses scripts u-boot.bin u-boot.sym [root@localhost u-boot-2016.09]# 如果你不幸没有顺利完成以上命令,请自行百度解决办法。 第三步:修改的U-Boot以适应秉火stm32f429板开发 展示进入的u-boot-2016.09目录 修改。/include/configs/stm32f429-discovery.h,这个头文件定义了外部晶振的频率,stm32f429-discovery使用的是8MHZ的晶振,而坚持火stm32f429开发板使用的是25MHZ的晶振。 [root@localhost u-boot-2016.09]# vim include/configs/stm32f429-discovery.h 《stm32f429-discovery.h》 #define CONFIG_STM32_SERIAL /* #define CONFIG_STM32_HSE_HZ 8000000 */ #define CONFIG_STM32_HSE_HZ 25000000 #define CONFIG_SYS_CLK_FREQ 180000000 /* 180 MHz */ #define CONFIG_SYS_HZ_CLOCK 1000000 /* Timer is clocked at 1MHz */ 修改。/arch/arm/mach-stm32/stm32f4/clock.c,这个文件里定义了锁相环的参数。这些锁相环的参数可以使用ST公司提供的STM32CubeMX软件获得。 将生成的u-boot.bin下载到秉火stm32f429开发板中就可以输出了。 第四步:下载u-boot.bin到秉火stm32f429开发板,欣赏成果。 下载工具: J-Link v9 下载地址: 0x08000000 启动配置: boot0,boot1接地,从内部flash启动。 加载Linux未知,网络未功能配置,待续。。。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1602 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1536 浏览 1 评论
967 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
680 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1579 浏览 2 评论
1860浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
641浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
513浏览 3评论
527浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
500浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 16:26 , Processed in 0.689346 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号