微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 第十篇?eclipse下egit插件的使用简述

第十篇?eclipse下egit插件的使用简述

时间:10-02 整理:3721RD 点击:
我从上周六开始尝试在eclipse下搭建stm32f7的开发环境,用了两天的时间,搭建完成,程序也可以编译下载了。并且简单的小程序也可以正常的调试了。当时我感觉很高兴,一个原因是eclipse是一个free tool,并且它还可以安装各种各样的插件进行开发,来扩展eclipse的功能。并且在搭建开发环境的过程中,也锻炼了自己的对于程序编译、汇编、链接的了解。但是当我把自己在IAR下的整个完整的工程移植到eclipse下的时候,事情开始出现了意想不到的变化,出现了很多问题:第一,由于使用到了外部SRAM,所以我需要把程序连接到0xc0000000,外部sdram空间,在IAR下可以一句话解决这个问题:

  1. __root uint16_t ltdc_lcd_framebuf[1280][800] @ 0xc0000000;

复制代码

到了gnu下就不是这么简单了,这个解决办法是:
首先定义二维数组如下:

  1.        
  2. uint16_t __attribute__((section(".sdram_section"))) ltdc_lcd_framebuf[1280][800];

复制代码

然后再链接文件中显式声明该段:

  1. MEMORY
  2. {
  3. FLASH (rx)      : ORIGIN = 0x00200000, LENGTH = 2048K
  4. RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 512K
  5. SDRAM (xrw)      : ORIGIN = 0xC0000000, LENGTH = 32M
  6. }

复制代码

  {
  *(.sdram_section);
  } > SDRAM
这个编译问题,解决之后,我就用stlink下载程序,然后错误又来了:


然后,我尝试自己编译阿波罗的stlink extern loader,但是自己不才,没有成功。后来发现可以使用如下的extern loader,这是stlink自带的,阿波罗可以使用。


最后最大的问题来了,当我移植完整的程序到阿波罗之后,发现debug开始出现问题了,就是这个不能debug的问题困扰了我到现在,谁让我是一个强迫症患者阿,这个问题不解决怎么能行呢,我开始怀疑一些可能出现的问题,但是到现在都没有找到,中途,我也尝试了一个IDE TRUESTUDIO。这个是基于eclipse的,由free版本的,我看他的调试使用的是stlink接口,而不是openocd接口,我在iar下完整的程序移植到truestudio后,可以正常调试,虽然调试之前,要经过很长时间才能把程序下载到flash,hex文件大概7M左右。但是可以调试,我本来就像屈服与struestududio了。虽然lite版本每次都有5s的广告时间。但是有一个问题是lite版本很不灵活,sprintf函数无法读入float型的变量,这让我很无奈,索性,还是回到eclispe把,我准备勉强暂时先接受eclipse无法调试的大型程序的问题了。于是目前我又回到解放前了,刚才eclispe下建立起阿波罗ucosiii的支持。
代码我托管到新的仓库了:
https://github.com/iysheng/pig.git
就使用pig以纪念我的愚蠢。
但是这个帖子只写这些有点太少内容了,所以,我就记录下我在eclipse使用github的经历吧。
我使用的是egit插件,他的wiki
https://wiki.eclipse.org/EGit/Us ... _to_version_control
首先,创建一个帐号


然后,选择自己的工程进行分享


接着,就可以推送,commit等操作了


输入仓库地址


选择分支



然后看下github


这样就不用每次,都在命令行下和github交互了,尽管我经历了这么的问题,但是我还是支持eclipse的。付出总会有回报的。

解决以下为什么无法debug大型的程序了,是因为在移植完整的程序之后,我修改了连接文件,也就是我修改了下载地址,最开始的连接文件如下:

  1. FLASH (rx)      : ORIGIN = 0x08000000, LENGTH = 2048K

复制代码

开始的地址是0x08000000,后来我修改成为0x00200000,这样一来使用openocd就一直无法debug了,今天我改回0x08000000之后,可以正常debug了。截图如下:


总结一下规律,当遇到问题的时候,不妨冷静下来,作些别的事情,然后过段时间,不知道什么时候,这个问题就被偶然的解决了。

大神,加个扣扣啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top