最近学习Arduino。
Arduino开源硬件和Arduino IDE是一个很容易上手的系统。
目前arduino已经支持很多种板类型,甚至已经支持了部分arm芯片。比如arduino ng、arduino uno、arduino mini、pro mini等。但是大多数情况,都是使用的atmega8/atmega168/atmega328/atmega1280/atmega2560等芯片。
在单片机代码中,需要对不同的引脚、定时器、接口进行操作,由于不同单片机引脚和功能不一样,因此代码无法共用。那么,arduino是如何做到用一份代码就可以分别在不同类型的板子上执行呢?
其实arduino实现了一个框架,针对不同的芯片,把相同的部分提供一套通用机制,不同的部分抽象出来,制定一套规则,只要所有的芯片都遵守这个规则,就可以正常的工作起来。
Arduino开源硬件和Arduino IDE是一个很容易上手的系统。
目前arduino已经支持很多种板类型,甚至已经支持了部分arm芯片。比如arduino ng、arduino uno、arduino mini、pro mini等。但是大多数情况,都是使用的atmega8/atmega168/atmega328/atmega1280/atmega2560等芯片。
在单片机代码中,需要对不同的引脚、定时器、接口进行操作,由于不同单片机引脚和功能不一样,因此代码无法共用。那么,arduino是如何做到用一份代码就可以分别在不同类型的板子上执行呢?
其实arduino实现了一个框架,针对不同的芯片,把相同的部分提供一套通用机制,不同的部分抽象出来,制定一套规则,只要所有的芯片都遵守这个规则,就可以正常的工作起来。
这里主要讲讲arduino各种板子配置文件的规则。
Bootloaders 不同芯片需要的bootloader文件
Cores 单片机程序核心代码所在的位置,这里定义了所有芯片的通用功能,提供了通用的功能比如延时,串口通信,按键,输入输出等基本通用功能
Firmwares 一些固件程序
Libraries 开源库文件,比如eprom,wif