需要安装openocd软件.如果已安装默认的openocd,需要先卸载系统默认的openocd(默认版本是0.5.0,版本太低),然后再安装.

在安装前需要安装libusb库文件:

  1. sudo apt-get install libusb-1.0--dev libusb-1.0-0 automake autconf libtool pkg-config

然后执行安装:

  1. git clone git://git.code.sf.net/p/openocd/code openocd
  2. cd openocd
  3. ./bootstrap
  4. ./configure --prefix=/usr/local \
  5. --enable-stlink --enable-jlink
  6. echo -e "all:\ninstall:" > doc/Makefile
  7. make
  8. sudo make install

默认情况下openocd会安装到/usr/local/bin文件夹下,有可能会无法执行openocd命令,如果无法执行,可以将/usr/local/bin加入到PATH变量即可。

安装交叉编译器,下载地址:https://sourcery.mentor.com/sgpp/lite/arm/portal/package7813/public/arm-none-eabi/arm-2010.09-51-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

或者https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q1-update/+download/gcc-arm-none-eabi-4_8-2014q1-20140314-linux.tar.bz2

本来我想自己写个stm32f429的裸机程序,所以要安装交叉编译器,但是后来考虑到写起来比较慢,还是下篇博文中再讲述如何为stm32f429写裸机程序。

linux下stm32f429可用的开发库有官方固件库libopencm3两种可以选择.如果选用libopencm3,可以参考libopencm3例程,交叉编译器应选择gcc-arm-embedded。

可惜的是libopencm3例程中没有stm32f429i-discovery的例子,在其基础上写代码还是有不少难度的。

我将官方固件库中用于stm32f429i-discovery的hex文件解压,然后压缩成zip文件生成到博客上,可以在这里下载,也可以下载官方固件库后将该文件提取出来。

将该文件改名为f429.hex(要在命令行下输入名称,太长了不好输入)。

用miniusb线(通常我们手机的充电线使用microusb,miniusb头要大一些)连接开发板和pc,然后执行下面的步骤。

然后打开一个控制台,输入下面命令:

  1. $ sudo openocd -f interface/stlink-v2.cfg -f board/stm32f429discovery.cfg

会得到下面的显示信息:

  1. Open On-Chip Debugger 0.9.-dev--g930e41a (---:)
  2. Licensed under GNU GPL v2
  3. For bug reports, read
  4. http://openocd.sourceforge.net/doc/doxygen/bugs.html
  5. Warn : Interface already configured, ignoring
  6. Error: already specified hl_layout stlink
  7. srst_only separate srst_nogate srst_open_drain connect_deassert_srst
  8. Info : This adapter doesn't support configurable speed
  9. Info : STLINK v2 JTAG v17 API v2 SWIM v0 VID 0x0483 PID 0x3748
  10. Info : using stlink api v2
  11. Info : Target voltage: 2.903844
  12. Info : stm32f4x.cpu: hardware has breakpoints, watchpoints
  13. Info : accepting 'telnet' connection on tcp/
  14. target state: halted
  15. target halted due to debug-request, current mode: Thread
  16. xPSR: 0x21000000 pc: 0x080001d4 msp: 0x2001fff8
  17. flash write image erase ~/soft/f429.hex: command requires more arguments
  18. in procedure 'flash'
  19. flash write image erase /home/host/soft/f429.hex: command requires more arguments
  20. in procedure 'flash'
  21. auto erase enabled
  22. Info : device id = 0x10036419
  23. Info : flash size = 2048kbytes
  24. target state: halted
  25. target halted due to breakpoint, current mode: Thread
  26. xPSR: 0x61000000 pc: 0x20000042 msp: 0x2001fff8
  27. wrote bytes from file /home/host/soft/f429.hex in .677387s (25.785 KiB/s)

然后另外打开一个控制台,执行下面的命令:

  1. telnet localhost
  2. halt
  3. flash write_image erase /home/host/soft/f429.hex
  4. reset run

其中,/home/host/soft/f429.hex是我的f429.hex的绝对路径,需要修改成自己的文件的真实路径。

将开发板复位之后,可以看到需要重新矫正屏幕,矫正之后就可以进入到跟以前一模一样的图形界面。

debian下烧写stm32f429I discovery裸机程序的更多相关文章

  1. 1_jz2440在linux下烧写裸机程序

    常用的烧写方法有: 1.使用并口工具烧写:接线(参考百问网JZ2440V2开发板使用手册),使用oflash烧写(速度比较慢),可烧写.bin文件,从新上电观察效果.可烧写u_boot. 2.使用op ...

  2. 基于BASYS2的VHDL程序与烧写——按键消抖程序

    请尊重作者版权,转载请注明源地址http://www.cnblogs.com/connorzx/p/3548364.html 按键在按下的过程中通常会产生一段时间的抖动,为了消除这种抖动,一般采取两种 ...

  3. Linux下烧写工具DNW和USB驱动安装(一)

    转:http://blog.csdn.net/zhengmeifu/article/details/8837930 Linux下编译记录:编译PC端USB驱动和写入工具dnw_linux.tgz压缩包 ...

  4. cygwin下烧写文件到sd卡中

    在cygwin下将firmware_sdcard.bin写入到sd卡中(cygwin需要以管理员身份启动) 1查看sd分区情况 cat /proc/partitions  (为了找到sd卡的标记) 2 ...

  5. 【Hi3516】 uboot下烧写BSP

    setenv serverip xx.xx.xx.xx setenv ipaddr xx.xx.xx.xx setenv ethaddr xx:xx:xx:xx:xx:xx setenv netmas ...

  6. debian下使用ft232为stm32f429i-discovery烧写uboot和uImage

    操作系统:debian 软件: openocd  minicom 硬件:  MiniUSB线.stm32f429i-discovery, WaveShare FT232串口模块(可以在淘宝上买到) 关 ...

  7. debian下为stm32f429i-discovery编译uboot、linux内核和根文件系统

    交叉编译器:arm-uclinuxeabi-2010q1 交叉编译器下载下来后解压,然后将其中bin文件夹路径加入到PATH变量中. 根据<debian下烧写stm32f429I discove ...

  8. 给XC2440开发板烧写程序的N种方式

    转:http://blog.chinaunix.net/uid-22030783-id-3420080.html 给XC2440开发板烧写程序非常灵活,总结起来有这么几种方式:   空片烧写(flas ...

  9. 利尔达CC3200模块烧写程序笔记

    1. 硬件使用利尔达的CC3200模块,仿真下载器使用利尔达的FTDI仿真器,硬件完全兼容官方的仿真器.仿真器支持IAR的调试,单步运行等操作. 2. 硬件连接接线说明: RXD, TXD, GNG, ...

随机推荐

  1. mysqldumps 远程备份

    普通模式 mysqldump -uroot -ppassword -h10.26.114.25 -P3306 --databases databasename > XXX.sql 多条在一起模式 ...

  2. 百科知识 国内的创业项目如何众筹,能登录Kickstarter吗

    一个国内的团队登陆Kickstarter到底有多难? 300万用户,4.8亿美元筹款,Kickstarter在2013年交出了一份惊艳的答卷.对于美英澳加新荷六国的创业团队来说,Kickstarter ...

  3. OCP-1Z0-051-题目解析-第16题

    16. Evaluate the following query: SQL> SELECT promo_name q'{'s start date was }' promo_begin_date ...

  4. 微信小程序 - 单个题目

    后端传过来的数据,如果通过wx:for遍历出来那就是一个页面全部排下来.... 我的想法就是,页面初始化时设置一个默认值 1/50 就是 index+1 / 50(后端传过来的数组长度),通过控制in ...

  5. 【设计模式】工厂方法(FactoryMethod)模式

    看不见PPT的请自行解决DNS污染问题. 相关类的代码: namespace FactoryPatternConsole.Model { public class Address { public s ...

  6. 【React Native开发】React Native控件之DrawerLayoutAndroid抽屉导航切换组件解说(13)

    ),请不要反复加群! 欢迎各位大牛,React Native技术爱好者增加交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文章技术推送! 该DrawerLayoutAndroid组件封 ...

  7. MQTT---HiveMQ源代码具体解释(十四)Persistence-LocalPersistence

    源博客地址:http://blog.csdn.net/pipinet123 MQTT交流群:221405150 简单介绍 HiveMQ的Persistence提供配置包含File和Memory,以解决 ...

  8. 前端PC页面,移动端页面问题笔记~~

    <!DOCTYPE html> <html> <head> <meta charset="gbk"/> <meta name= ...

  9. Minify把CSS和JS压缩和削减

    Minify把CSS和JS压缩和削减(Minify:去掉空格回车符等),以及把多个CSS,JS文件整合到一个文件里.不要以为你的大带宽没有必要进行这类优化.使用它的理由更重要的是文件合并,而不是压缩, ...

  10. IE8 "开发人员工具" 无法使用,无法显示

    经常使用IE8开发工具的开发人员可能会遇到这么一种去情况:按F12时任务栏里出现开发人员工具的任务,但是开发人员工具窗体不弹出,也不出现在IE8里,重装IE88后还是存在此问题. 解决办法其实非常简单 ...