您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
 
     
   
 订阅
  捐助
如何在Mac上做嵌入式开发?
 
作者:Mr__C 来源:简书 发布于 2016-11-28
2109 次浏览     评价:      
 

前言

目前嵌入式开发平台按照性能可以分为两类,一种是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平台进行编译。这种在一种平台编译,另一种平台运行的编译,我们称之为交叉编译。

程序是怎样被创造的?

在程序被创造到用户手上的过程中,除了系统提供的APIs,程序员需要三种必不可少工具:

输入工具:代码编辑器,如 Vim,Notepad++、Sublime

编译工具:编译器,可以将人类所写的代码转化为机器能懂的二进制文件,如 GCC、Clang、Javac

<