Eclipse搭建stm32+jlink开发环境全攻略(进阶篇二)
来源:互联网 发布:那英我知喜欢你现场版 编辑:程序博客网 时间:2024/05/16 10:40
Eclipse搭建stm32+jlink开发环境全攻略
进阶篇(二)
我们设计程序往往会遇到这样的一个需求,那就是我们的程序起始位置需要重新定位,并不是默认的0x08000000,这种情况往往出现在有使用bootloader的情况中,0x08000000处往往存放我们的bootloader程序,然后0x08000000+N出存放我们的应用程序(APP)。那在MDK下这种情况很好解决,无非就是修改几个地址和大小变量。在eclipse中也同样简单。
比如现在,我使用的芯片为stm32f103rc,flash=256K,ram=48K,我需要把我的程序下载到0x08004000处,并且能够通过已经编译好的bootloader启动这个程序,根据前面的相关章节,我们可以知道:
1\首先我们编译的时候,需要将输出文件的起始地址定位为0x08004000
2\然后我们在下载的时候,我要将二进制文件烧写到flash中的0x08004000处
3\调试程序的时候我们也能够正确的将调试器定位到0x08004000处来正确的启动调试
我们一步一步来解决上面的三个地方。
1、修改编译地址:
这个地址应该叫做链接地址,在链接文件中
如图所示,我将FLASH的ORIGIN修改为0x08004000,因为我的bin文件需要链接到这个地址,那么flash的剩余空间也要跟着调整,0x4000=16K,原本flash有256K,所以剩余240K。由于我的ram不需要修改,所以_estack和ram段的值都没有变。
2、修改下载地址:
前面我们已经讲解了使用jlink脚本进行一键下载,下载由于我们的下载地址改变了,那么我们只需要修改脚本中的loadfile的目的地址即可
3、修改调试地址
如果细心的同学可能已经发现了,在eclipse的jlink调试选项中,已经自带有修改调试偏移地址的选项,如下图所示
只需要修改下面的偏移地址即可,上面的应该是对应ram的吧。
测试一下
可以看到点击调试后首先进行程序的下载,可以看到程序被下载到0x08004000,这个地址正是我们期望的地址,说明没问题。然后启动gdb后停止在了main函数的开始位置,OK一切正常。
注:本人github中有工程模版
Github地址
- Eclipse搭建stm32+jlink开发环境全攻略(进阶篇二)
- Eclipse搭建stm32+jlink开发环境全攻略(进阶篇一)
- Eclipse搭建stm32+jlink开发环境全攻略(初级篇)
- Eclipse搭建stm32+jlink开发环境全攻略(高级篇)
- Eclipse搭建stm32+jlink开发环境全攻略
- Eclipse搭建stm32开发环境+jlink调试
- STM32 开源开发环境的搭建 eclipse+gnu arm+CodeSourcery+jlink&stlink
- Windows环境下搭建基于Eclipse的STM32 GCC 开发环境(二)工程设置篇
- 鄙人开发环境搭建全攻略
- eclipse+gcc+jlink for STM32环境
- 搭建eclipse+codesourcery的STM32开发环境
- Win7下搭建Eclipse+STM32开发环境
- eclipse + GDB + JLink 搭建MCU调试环境
- Eclipse+JBoss+MySQL开发环境设置全攻略
- STM32开发环境搭建
- STM32开发环境搭建
- STM32开发环境搭建
- STM32开发环境搭建
- 究竟啥才是互联网架构“高并发”
- ReentrantLock与Synchronized异同
- 构建C协程之概述
- 温故知新-ROWTYPE
- 自定义view之自定义折线图(二)
- Eclipse搭建stm32+jlink开发环境全攻略(进阶篇二)
- 输出TensorFlow中checkpoint内变量的几种方法
- 编译报错 clang: error: no input files
- hexo + github 安装博客系统
- C/C++刁钻问题各个击破之细说sizeof
- Genymotion离线下载
- Ubuntu 16.04 安装Docker ,Pull Docker image的时候遇到docker pull TLS handshake timeout
- Unity5-ABSystem(三):AssetBundle加载
- C++ 多线程编程总结