最近比较忙,针对前面的留言说有怎么download u-boot、uclinux到stm32,我翻了翻以前记录下的笔记,特意贴上来,其实有些步骤我都已经忘记了。。。

一、搭建嵌入式linux开发环境
1. 准备一台Linux系统(Fedora,CentOS,Ubuntu等)的电脑,将BSP压缩包(linux-cortexm-2.0.0.tar.gz)拷贝到一个目录;
2. 解压BSP包:     tar -xzvf linux-cortexm-2.0.0.tar.gz
3. 解压arm工具链:
cd linux-cortexm-2.0.0/tools
                   tar xvfj arm-2010q1-189-arm-uclinuxeabi-i686-pc-linux-gnu.tar.bz2

首先创建一个目录作为工作目录,这里我创建到/aa/arm-2010q1/目录下(后面步骤的所有源代码都会解压安装到此目录中)
#mkdir -p /aa/arm-2010q1/
创建一个目录/aa/arm-2010q1/并把解压后的arm工具链目录下的所有文件复制到这个目录下

#chmod 777 /aa/arm-2010q1/(要改变该目录的权限才能成功复制到这个目录下)
复制完成后。
4. 安装交叉编译工具链:
(1).修改环境变量
vim ~/.bashrc
在最后一行输入 export PATH=$PATH:/aa/arm-2010q1/bin(上一步解压工具链文件的地址) 
(2).然后 source ~/.bashrc
(3).如果装有几个交叉工具编译链,可以在~/.bashrc中选用

5. 使能arm工具链:
                   source ACTIVATE.sh
二、U-Boot的配置编译
   配置编译u-boot的方法十分简单,只需在解压并进入源码包后,在u-boot顶层目录下执行如下两个命令

设置配置文件:  make stm3240g-eval_config
编译u-boot:     make        
(编译成功后,会在u-boot目录下生成一个u-boot.bin文件)

三、文件的烧写:
⑴U-Boot烧写:使用USB转串口(需用户自备)连接开发板的P4(5V,TX, RX, GND)。
跳线帽短接J3、J4.
⑵打开开发板电源开关,再打开J-Link工具的J-Flash
⑶在工具栏Flie open data file

选好地址:0x08000000

选工具栏Target中的Auto将先前编译好的u-boot.bin烧入STM32F429的Flash即可

或使用ST Flashloader工具,将之前生成的u-boot.bin文件烧入STM32F429的Flash亦可。

在这里我所编译得到的u-boot大小约为108KB左右

四、Linux kernel/rootfs 编译
1. 进入内核文件目录:  cd lux
2. 配置裁剪linux kernel(可选项,如果不需要可以跳到下一步)
           make menuconfig
3.编译linux:     
make xipImage    
   再进入该目录下的arch/arm/boot
cd arch/arm/boot
   执行boot目录下的make_uboot_ximage脚本
              ./make_uboot_ximage
编译成功后,会在arch/arm/boot目录下生成一个xipuImage.bin文件)

五、 Linux kernel/rootfs烧写:
⑴要先烧写好u-boot.bin
⑵打开开发板电源开关,再打开J-Link工具的J-Flash
⑶在工具栏Flieopen data file选好地址:0x08020000将先前编译好的xipuImage.bin烧入STM32F429的Flash即可(步骤与上述的u-boot烧写相似)

六、应用程序的移植
1、准备好交叉编译环境
在安装有Linux操作系统的PC上安装对于平台的交叉编译器,并将交叉编译器加到环境变量中,如export PATH=$PATH:/opt /toolchain/rsdk-1.3.6-5281-EB-2.6.30-0.9.30/bin,上述已经安装激活,然后在终端界面里看交叉编译器版本,终端输入arm-uclinuxeabi-gcc –v,显示版本号则表示安装成功。
2、准备好源代码

#cd /test
#mkdir hello
#vi hello.c
输入以下代码并存盘退出
#include <stdio.h>
 
int main(void)
{
     int i;
     printf("Helloworld! welcome to embedded linux!\n");
     return 0;
}
3、编译hello并生成hello可执行文件
#arm-uclinuxeabi-gcc -o hello hello.c -mcpu=cortex-m3 –mthumb

4、把hello可执行文件下载到开发板

5、用多功能读卡器把SD卡连接到电脑,执行以下命令把hello可执行文件复制到SD卡中
#cp hello /mnt

6、退出SD卡把SD卡插到开发板插槽,接通开发板电源

7、等待开发板进入系统后打开开发板的终端,执行以下指令执行hello文件即可
#cd /mnt
#./hello

stm32f429的u-boot、uclinux内核烧写说明相关推荐

  1. linux内核烧写erasing failed,TQIMX6UL开发板手动烧写具体方法

    烧写 (1) 进入下载菜单 1. 如不能从nand 启动,将拔码打到sd 卡启动.插上已经做好的tf 启动卡.否则拔码打到 nand 启动. 2. 接上串口,上电:在以下倒数完成之前按任意键. ... ...

  2. linux内核烧写erasing failed,mfgtool烧写mx28文件系统失败

    内核烧写成功后,接下来烧写文件系统,烧写过程中内核core掉,日志如下 lib/libBrokenLocale-2.11.1.so lib/libcrypt.so.1 lib/librt.so.1 l ...

  3. 【单片机开发】stm32f429在线IAP 实现SD卡烧写程序

    (一)背景介绍 最近做了一个工程需要用到IAP在线升级这个功能,当时在学的时候,了解到IAP的功能当时就觉得很鸡肋,明明有烧写器干嘛那么费事,现在觉得当时确实浅薄了,IAP功能在工程中确实是非常有用的 ...

  4. ESP8266乐鑫版本的(支持云端升级 (Boot 模式)烧写方法,(V1.5.4官方介绍如下)(BOOT模式)...

    硬件平台: nodeMCU devkit核心板,带ch340g,应该是仿造的,官方是cp2102驱动,安信可科技有连接https://wiki.ai-thinker.com/esp8266/board ...

  5. am335x linux内核烧写_am335x文件系统烧写问题

    printenv打印信息: U-Boot# printenv arch=arm baudrate=115200 board=am335x bootargs_defaults=setenv bootar ...

  6. am335x linux内核烧写_实时 Linux 抖动分析 Step by step

    本文首次发表于 实时 Linux 抖动分析 Step by step 前段时间有同学问到: 大家有显卡方面实时性调优经验交流吗?我现在是 x86,不加显示任务实时性可以保持在 20us 内,如果加上显 ...

  7. 【内核配置】六、修改内核自带的的LCD驱动源码并编译进内核 | 烧写到Mini2440__TD35 完整攻略...

    主   机:VMWare--Ubuntu-16.04.2-x64-100ask 开发板:Mini2440--256M NandFlash, 2M NorFlash, 64M SDRAM, LCD-TD ...

  8. arm下如何烧写指定分区大小的内核和文件系统

    最近在海思3518e平台下烧写内核和文件系统,由于项目需要,需要运行海思SDK中的测试软件HiIspTool,不能使用精简后的文件系统,需要刷一个比较大的文件系统,但在此过程中由于各种原因,弄坏了一个 ...

  9. Android内核开发:系统分区与镜像文件的烧写

    本文是<Android内核开发>系列的第五篇文章,本文重点介绍如何把编译输出的镜像文件烧写到Android设备中. 玩过刷机的朋友肯定对fastboot这个工具并不陌生,它是Android ...

最新文章

  1. 介绍两个非常好用的Javascript内存泄漏检测工具
  2. yum源查看mysql_获取MySQL各版本yum源 并安装
  3. 主成分分析和因子分析十大不同点
  4. JavaFX缺少的功能调查:CSS
  5. 块裁剪后的矩形边界如何去掉_手持拍摄画面太抖?这节课教你如何快速稳定抖动的画面...
  6. apache大师+伪静态_Apache开启伪静态示例
  7. 扫地机器人电路原理图_扫地机有这一台就够了:石头扫地机器人T6 首拆
  8. DBA日常工作职责 - 我对DBA的七点建议
  9. IIS Tomcat共享80端口
  10. vue通过webpack打包后怎么运行
  11. 质因数分解(0)P2012_1
  12. shell中$(( )) 与 $( ) 还有${ }的区别
  13. 关于动态数组指针操作的两个例子
  14. C程序设计--指针(用 “ 函数 ” 对 “ 多维数组 ” 进行操作)
  15. AllWinner--R329
  16. 【小技巧】利用matlab进行批量文件下载并解压
  17. 复制pdf文字到word
  18. 钉钉邮箱登录入口_清博舆情钉钉小程序上线 ,五大优势三大亮点助力工作更高效...
  19. 北京 | 微信小程序及小游戏开发者线下交流会
  20. 招商银行信用卡中心笔试编程题 - 小招喵跑步

热门文章

  1. 微信小程序修改数据不刷新页面更新数据
  2. redis集群数据迁移方式、宕机
  3. 【LCC系列】自动驾驶中激光雷达和相机的自动在线标定(2013)
  4. sim7600ce 拨号上网测试_Linux下sim7600ce调试笔记
  5. Unity变换矩阵之如何构建变换矩阵
  6. 硬件描述语言VHDL——并行语句
  7. 2021年5月的CFA一级报名时间什么时候?
  8. 用c++设计i一个伪距单点定位程序
  9. Conflux Studio新版教程详解
  10. fitnesse 实例