ARM开发开源工具使用小结

本文介绍了从使用Freescale单片机转向ARM开发的过程,探讨了Eclipse+CDT作为开源IDE如何用于ARM程序开发。文章详细阐述了安装JDK、Eclipse和CDT,以及使用MinGW和Yagarto工具链编译ARM代码。作者面临的主要挑战在于理解如何利用OpenOCD或JLinkGDBServer进行在线调试,并分享了一篇相关教程资源。虽然尚未完全掌握调试原理,但作者希望通过总结已知信息,为后续学习铺平道路。
摘要由CSDN通过智能技术生成

之前一直使用最多的是Freescale的单片机,调试程序的时候使用的是BDM,从此便对在线调试产生了极大的依赖。从使用ARM7内核的LPC2148开始接触JLink,一开始接触倒也没感觉有什么难用的。淘宝上七八十块钱的盗版JLink加盗版Keil MDK或者IAR,使用起来基本还是非常简单的。但是来了这边上学之后便慢慢对版权问题越来越在意,身在这么一个环境里太明目张胆的使用盗版的软件、硬件实在有些不好意思,不得不开始研究一下相应的开源/免费替代品。

 

Eclipse貌似还是用的非常多的开源IDE,但Eclipse最初是为开发JAVA设计的,如果需要开发C/C++程序,需要安装CDT(C/C++ Development Tooling),或者直接下载集成了CDT的Eclipse版本。使用Eclipse开发ARM程序到此处为止都没什么可说的,但是为了给ARM编译、调试嵌入式C程序还需要做一些别的工作,其中的有些步骤我目前也还没有完全搞清楚。之所以写这篇文章就是为了把已知的东西做个小结,以后也好继续研究,以免每次都得完全从头开始。

 

1. 装好JDK以及Eclipse+CDT之后,Eclipse就可以使用了。如果只是写标准C程序的话还需要安装C/C++编译器,因为CDT里面并没有包含这些工具,Windows下面使用MinGW就可以。(印象中是这样的,有待进一步确认,目前还处在概念不清的状态)

 

2. 因为是给ARM单片机编程,C代码必须能够被编译、链接成ARM核能执行的机器码,所以还需要特殊的

FASMARM v1.42 This package is an ARM assembler add-on for FASM. FASMARM currently supports the full range of instructions for 32-bit and 64-bit ARM processors and coprocessors up to and including v8. Contents: 1. ARM assembly compatibility 2. UAL and pre-UAL syntaxes 3. IT block handling 4. Alternate encodings 5. Output formats 6. Control directives 7. Data definitions 8. Defining registers lists inside macros 9. Half-precision number formatting 10. Variants supported 11. Further information 12. Version history _______________________________________________________________________________ 1. ARM assembly compatibility There are a few restrictions how the ARM instruction set is implemented. The changes are minor and mostly have a minor impact. For the most part the basic instruction outline is the same. Where possible the original style is used but there are some differences: Not everything matches the ARM ADS assembly style, where possible the original style is used but there are some differences 1) label names cannot begin with a digit 2) CPSIE and CPSID formats are changed, use "iflags_aif" form instead of "aif" (eg. "CPSIE iflags_i" instead of "CPSID i") 3) SRS with writeback must have a separating space after the mode number and before "!" (eg. "SRSDB 16 !" instead of "SRSDB 16!") 4) macro, rept, irp, format, if, virtual etc. are all significant changes from the ARM ADS, so you will need to re-write those sections of existing code Original ARM Syntax | fasmarm Syntax ----------------------+---------------------- cpsie a | cpsie iflags_a | srsdb #29! | srsdb #29 ! ;or, | srsdb 29 ! _______________________________________________________________________________ 2. UAL and pre-UAL syntaxes fasmarm supports the original pre-UAL syntax and the newer UAL syntax. These two syntaxes only affect THUMB encodings. UAL stands for: Universal Assembly Language. pre-UAL syntax is selected wi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值