STM32+eclipse+Linux下开发

Posted 暮色1994

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32+eclipse+Linux下开发相关的知识,希望对你有一定的参考价值。

转载自:http://www.cnblogs.com/amanlikethis/p/3803736.html,

只是按照自己环境修改了一些东西而已

  • 安装软件

    • 安装eclipse IDE for C/C++ developers(自行安装)

    • 安装插件ilg.gnuarmeclipse.repository-2.12.1-201604190915.zip

    • 安装JLink驱动(可以使用beb包安装JLink_Linux_V600i_x86_64.deb)

  • 安装插件ilg.gnuarmeclipse.repository-2.12.1-201604190915.zip

    • 打开Eclipse->help->install new software


    • 不勾选这项会快一些

  • 使用JLink的命令行下载程序

    • 使用这个命令进入JLink的命令形式,$JLinkExe -device STM32F103ZE -Speed 4000 -IF JTAG -JTAGConf -1,-1 

      • 后面的参数(可以在JLink命令形式中设置):

        • -device STM32F103ZE    选择设备

        • -Speed 4000                     选择JLink速度

        • -IF JTAG                           选择接口(JTAG,SWD)

        • -JTAGConf -1,-1               (忘记了哈哈)

    •      
      1. J-Link>h
      2. 停止运行
      3. J-Link>connect
      4. 连接设备    
      5. J-Link>loadbin filename(根据当前目录)  0x08000000
      6. 加载程序
      7. J-Link>g
      8. 运行  
      9. J-Link>qc
      10. 退出

    • 不过我的必须重启才可以运行(不知到为什么)

  • 使用Eclipse下载

    • 建立下载脚本(就是几句JLink命令了)

      •  在工程目录写下led,jlink文件,内容如下

      •        
        1.  connect
        2.  loadbin 要下在文件(包括路经) 0x08000000                                                                                        
        3.  r
        4.  g
        5.  qc

    • 打开eclipse->run->external tools configurations

      • 可以看见led,jlink作为一个参数脚本文件(-CommanderScript ./led.jlink)

      • 其实也就是在运行JLinkExe时出来一些设置之外要运行的命令,其实就是用命令行下载时我们自己敲的JLink指令。

      •  loadbin 要下在文件(相对于${workspace_loc:/led}的路经) 0x08000000  可以通过修改这里,修改我们要下载的文件。

  • 使用命令行调试

    • 启动JLinkGDBServer

      • $ JLinkGDBServer -device STM32F103ZE -speed 4000 -IF JTAG

      • 有些版本的JLink驱动直接$ JLinkGDBServer就可以了

    • 使用arm-none-linux-gdb调试

      • #gedit ~/.gdbinit

        • set auto-load safe-path /

        • 在当前用户目录下创建.gdbinit文件

        • 笔者的当前用户是root,所以在root目录下创建.gdbinit初始化文件

      • 在工程文件夹下的Debug目录中创建.gdbinit文件

      •        
        1. target remote :2331
        2. set mem inaccessible-by-default   off
        3. monitor speed auto
        4. monitor endian little
        5. monitor reset
        6. monitor flash device = STM32F103ZE
        7. monitor flash breakpoints = 1
        8. monitor flash download = 1
        9. load
        10. monitor reg sp = (0x08000000)
        11. monitor reg pc = (0x08000004)
        12. break ResetHandler
        13. break main
        14. continue


        • 需要说明的是:由于当前版本的Jlink驱动不支持STM32F103VET6,所以选择STM32F103ZE来代替。

      • 在另一份终端中输入arm-none-eabi-gdb 文件名.elf   进行调试

  • eclipse调试