|
楼主 |
发表于 2017-9-28 14:48:46
|
显示全部楼层
本帖最后由 ky123 于 2017-9-28 14:50 编辑
继续。。。。。。。。。
为了探求一个免费,不断更新,官方支持,且好用的Linux应用软件开发IDE,我搜索了N个词条,尝试了:
Visual Studio + winGDB :要钱啊,VS太大了
Visual Studio + visualGDB: 要钱啊,VS太大了
Eclipse + plugins :插件设置TTMD麻烦了
Sourcery-CodeBench-Lite-Edition: 免费,但官方支持度差,对于树莓不敢折腾,觉得有坑,有精力的同学可以去折腾下,OK了告诉我,什么心情?
Arm-DS-5 Community Edition:官方的免费IDE,定制版Eclipse,设置方便不少
使用ARM最新工具DS-5开发Linux简单Hello World应用程序,开胃菜,各位!
http://bbs.21ic.com/icview-410255-1-1.html?_dsign=2f342972
DS-5 Community Edition/ Version: 5.27.0/ Build number: 5270014 我决定用这个!
首先解决工具链问题,试过几个,包括Linaro。没找到一个明显告诉你交叉编译系统间库文件如何同步更新的工具链,顿时迷茫!这库都不同步,后面写程序还不是一堆问题啊,于是茫茫Internet坚持找寻,坚信树莓强大的生态链,终于有一天,SYSPROGS拯救了我
完美,一切都是这么完美!注意一定要Updating Sysroot for Raspberry PI Cross-Toolchain
http://gnutoolchains.com/raspberry/tutorial/
http://gnutoolchains.com/raspberry/tutorial/sysroot
SYSPROGS官方完美支持了树莓1/2/3,SmarTTY终端软件也挺好用
…
…
??? 没有IDE,是的,IDE要钱的,搞破解去吧!
紧跟伟哥的步伐 GO GO GO!
1: 默认安装raspberry-gcc4.9.2-r4.exe,我的系统Win10
2: 默认安装ds5-ce-windows64-27rel0.zip(setup.exe)
3: 打开DS-5,选择工作空间,我的是(C:\Users\cn28060369\Documents\DS-5 Workspace)
4: 拷贝C:\IT_CodeRepo\DS-5\examples\Linux_examples中hello_linux文件夹到DS-5工作空间
5: File->Import已经存在的Workspace工程文件夹hello_linux到IDE中
6: 设置工具链,选择安装的树莓专用工具链,然后Next,DS-5会自动检测工具链然后跟着提示Finish,我的图片里是已经设置过的
7: 右击项目文件夹,选择Properties,设置工具链参数
此处使能了并行编译!很棒吧!
当前工具链选择: GCC4.9.2就是树莓的
8: 配置GDB debug设置
9: 使用DS-5 debugger新建一个调试项,如下图效果
尽量和我的图片设置一样
10: 远程SSH登陆树莓
参考这个:http://blog.csdn.net/luyejie8888/article/details/38611293
差不多的,使用root账户登陆树莓试试
11: 把原来hello.c源码改掉,我们玩树莓不能只玩python/wiring-pi,它们屏蔽了基础文件访问知识,方便但是缺乏学习意义,我们操作扩展的ttyUSB0串口,把TXD与RXD短接- /************************** Demo for RaspberryPi **************************/
- // MSG> Hi, I'm Automan, My WeChat account is OPC_davidlee
- // MSG> Let's be technical partner, study and day day up
- // MSG> Use DS-5 IDE to simplify your Arm SOC development
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <termios.h>
- #include <errno.h>
- #include <limits.h>
- #include <asm/ioctls.h>
- #include <time.h>
- #include <pthread.h>
- #define DATA_LEN 0xFF /* test data's len */
- //#define DEBUG 1
- static int openSerial(char *cSerialName) {
- int iFd;
- struct termios opt;
- iFd = open(cSerialName, O_RDWR | O_NOCTTY);
- if (iFd < 0) {
- perror(cSerialName);
- return -1;
- }
- tcgetattr(iFd, &opt);
- //cfsetispeed(&opt, B57600);
- //cfsetospeed(&opt, B57600);
- cfsetispeed(&opt, B115200);
- cfsetospeed(&opt, B115200);
- //raw mode
- opt.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG);
- opt.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
- opt.c_oflag &= ~(OPOST);
- opt.c_cflag &= ~(CSIZE | PARENB);
- opt.c_cflag |= CS8;
- // DATA_LEN bytes can be read by serial
- opt.c_cc[VMIN] = DATA_LEN;
- opt.c_cc[VTIME] = 150;
- if (tcsetattr(iFd, TCSANOW, &opt) < 0) {
- return -1;
- }
- return iFd;
- }
- int main(void) {
- char tmp[1024];
- int len;
- int fd, i;
- int x = 0;
- printf("\n[#1] Software operations demo:\n");
- x = x + 1;
- printf("x=%d\n", x);
- x = x - (-1);
- printf("x=%d\n", x);
- x = x * x - 1;
- printf("x=%d\n", x);
- x = (x + 5) / 2;
- printf("x=%d\n", x);
- printf("[#2] Hardware ttyUSB0 operations demo:\n");
- fd = openSerial("/dev/ttyUSB0");
- for (i = 0; i < 3; i++) {
- tmp[i] = 'V';
- }
- write(fd, tmp, 3); // send to ttyUSB0
- for (i = 0; i < 3; i++) {
- tmp[i] = '0';
- }
- len = read(fd, tmp, 3);
- for (i = 0; i < len; i++) {
- printf("Read value: %c\n", tmp[i]);
- }
- printf("Finish test, DS-5 and PiB+ are OK!\n");
- return 0;
- }
复制代码 12: 激动人心的时刻到了,我们编译(debug版本才能调试,含符号信息),Project->Build All(注意保存后的文件才能再次编译生效)
点击右上角小爬虫进入调试
点击如下红色圈圈进入调试连接,hello执行文件会自动加载到/tmp文件夹下执行,并自动执行GDBserver
如下:运行,断点,AppConsole输出,都是OK的了,完美!
如果想重新调试,可以点击绿色圈圈断开连接后重新再连接
到此,一个完美的IDE已经呈现给您,剩下的请您慢慢探索吧,虽然不用写makefile,但是笔者依旧建议后续学习使用Cross-GCC,Makefile,CGDB-debugger,GDB-server,Autotools,Cmake等传统工具,毕竟它们通用性强。当然如果您同我一样年纪大了,那就同我一样玩儿吧!
最后一点废话!
从拿到一个闲置树莓到搞完IDE,笔者花了1个星期去SETUP,宝宝心里苦啊!怎么就没人整个完整的IDE玩树莓呢,老命令行整人,一点都没有与时俱进!
大家可以使用相同的方式匹配BeagleBone Black,不过笔者对它兴趣不大,BBB生态不强但够用。调试接口程序的时候大家可以用Arduino-M0配合树莓调试,注意IO电压3V3,NOT 5V0!
发扬Armfly精神,哥决定投稿开源,造福单片机开发者,早早入门Linux开发,让这个装A后面的世界变得透彻,不再神秘!我好伟大!!!
附:老外整的Arm DS-5 for Raspberry Pi, 没细节,不过让我知道我的想法是可行的!要相信自己!
Acrobat 文档.pdf
(1.09 MB, 下载次数: 7)
|
|