前言
目前嵌入式开发平台按照性能可以分为两类,一种是CPU只有数十兆的单片机,一种是比较高级的可以跑Linux甚至Android的嵌入式平台(其实iPhone、Android手机都属于嵌入式产品)。
后者一般基于Linux/unix操作系统做交叉编译,但是前者往往更多的是在Keil上做开发,但由于本人个人关系,比较不喜欢Keil界面,所以一般在做嵌入式开发的时候,都会优先考虑是否有Linux/unix类的SDK(指包含编译工具)。但似乎Mac OSX上做嵌入式开发的人员较稀少,hum.。.因此资料也会相对较少。
本文所举例子,是千千万万种嵌入式芯片的一种,并不具备普遍性,但读完本文应该也会让你略有收获。
系统环境
操作系统: OS X EI Capitan (10.11.5)
硬件平台: nRF51822 (Nordic BLE 芯片)开发板
什么是嵌入式开发 ?
基于嵌入式平台所进行的底层开发,我们称之为“嵌入式开发”。
那么现在传说中的程序猿,哪些猿类是属于嵌入式开发的呢?
举个列子:虽然手机属于嵌入式设备,但目前人数众多的APP开发者不属于嵌入式开发,而是属于应用开发人员(因为他们都是基于手机操作系统进行编程的)。但手机厂家中那些开发手机底层驱动和底层应用的人员则属于嵌入式开发。
目前,因近几年移动互联网的大力发展,使得 Web猿 和 APP猿 族群最为庞大。
什么是交叉编译?
简单来说,在C语言(包括但不限于)编译过程中会分为四个阶段: 预处理 -》 编译 -》 汇编 -》 链接
但是在以上过程中,需要占用“大量资源”,在嵌入式设备(嵌入式设备的设计要诀之一就是能省则省)中并不具备该资源(如编译器、足够快的CPU、内存等),所以需要借助我们的PC平台进行编译。这种在一种平台编译,另一种平台运行的编译,我们称之为交叉编译。
技术专区
- 基于半导体激光器驱动电源的嵌入式GUI开发解析
- 基于电子SE1500嵌入式扫描引擎应用的智能快递箱解析
- 无人驾驶时代下,地图大战,谷歌究竟能走多远?
- 嵌入式中,有无操作系统对设备驱动的不同解析
- 嵌入式存储器的全面解析