加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

VELT-0.2.8对STM32开发的支持(4):链接与调试

发布时间:2020-12-13 21:13:42 所属栏目:PHP教程 来源:网络整理
导读:VELT 的全称是 Visual EmbedLinuxTools ,它是1个与 visual gdb 类似的 visual studio 插件,用以辅助完成 Linux 开发。利用这个插件,将可以在 visual studio 的 IDE 中进行 Linux 利用程序的开发(包括编译和调试),也能够进行 uboot 和 linux 内核的编译

VELT的全称是Visual EmbedLinuxTools,它是1个与visual gdb类似的visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visual studioIDE中进行Linux利用程序的开发(包括编译和调试),也能够进行ubootlinux内核的编译,并根据编译时的毛病信息正肯定位到源码。目前的版本是0.2.7,支持vs2012/vs2013/vs2015

下载地址:http://download.csdn.net/user/lights_joy

Velt讨论QQ群:375515651


在上1节里我们对很多细节没有太在乎,在这1节里我们重新整理1下全部工程。不看不知道,1看吓1跳,上1节犯了好几个毛病。

我们所用的CPUSTM32F101 RCT6256K Flash32K SRAM

根据ST手册,它应当使用HD的初始化代码,而不是上1节使用的LD,因此将startup_stm32f10x_ld.s文件改成startup_stm32f10x_hd.s

相应地将STM32F10X_LD这个宏改成STM32F10X_HD

system_stm32f10x.c这个文件中有1个CPU频率的定义:

#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) /* #define SYSCLK_FREQ_HSE HSE_VALUE */ #define SYSCLK_FREQ_24MHz 24000000 #else /* #define SYSCLK_FREQ_HSE HSE_VALUE */ /* #define SYSCLK_FREQ_24MHz 24000000 */ #define SYSCLK_FREQ_36MHz 36000000 /* #define SYSCLK_FREQ_48MHz 48000000 */ /* #define SYSCLK_FREQ_56MHz 56000000 */ /* #define SYSCLK_FREQ_72MHz 72000000 */ #endif

这里默许选择的是72M,但CPU实际工作频率只能在36M,因此需要做修改。

 

接下来,我们还需要整理1下链接脚本。

STM32库的Projects目录下,提供了很多的示例工程,直接取其中的某个链接脚本为模板,根据实际情况修改FLASHRAM的定义:

/* Highest address of the user mode stack */ _estack = 0x20007FF8; /* Generate a link error if heap and stack don't fit into RAM */ _Min_Heap_Size = 0; /* required amount of heap */ _Min_Stack_Size = 0x800; /* required amount of stack */ /* Specify the memory areas */ MEMORY { FLASH (rx) : ORIGIN = 0x08000000,LENGTH = 256K RAM (xrw) : ORIGIN = 0x20000000,LENGTH = 32K MEMORY_B1 (rx) : ORIGIN = 0x60000000,LENGTH = 0K }

主要就是_estackFLASH LENGTHRAM LENGTH3个参数。

终究的工程就是这个模样的:


F7生成:

接下来试试在VS里调试:

首先配置好目标机的参数:


这里主要有3项:

目标连接类型必须选择GdbServer,目标机IP选择本机127.0.0.1,目标机端口选择3333,这个端口必须和OpenOcdgdbserver端口相1致。

main函数里设置断点,F5调试运行程序:


哈哈,弄定!

bye,JLINK~~~

bye,IAR~~~




(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读