这里主要讲讲arduino各种板子配置文件的规则。
Bootloaders 不同芯片需要的bootloader文件
Cores 单片机程序核心代码所在的位置,这里定义了所有芯片的通用功能,提供了通用的功能比如延时,串口通信,按键,输入输出等基本通用功能
Firmwares 一些固件程序
Libraries 开源库文件,比如eprom,wifi,wire等库文件
Variants 针对不同芯片定义的引脚文件
1、顶层目录:
arduino ---> arduino IDE启动脚本 examples/ ---> 示例程序目录(通过IDE的 File -> Examples 菜单可以浏览得到) hardware/ ---> 固件相关的目录(见下方) lib/ ---> IDE运行需要的库文件(几个jar包) libraries/ ---> 也是示例程序(通过IDE的 File -> Examples 菜单可以浏览得到) reference/ ---> Html帮助文档 revisions.txt tools/ ---> Mangler工具(不太清楚干嘛用的)
boards.txt ---> 各种型号arduino板子参数描述文件,烧写固件时要用到 bootloaders/ ---> 不同芯片需要的bootloader文件 cores/ ---> 单片机程序核心代码所在的位置,这里定义了所有芯片的通用功能,提供了通用的功能比如延时,串口通信,按键,输入输出等基本通用功能 firmwares/ ---> 包含了两个用于ATmega8U2处理器上的二进制固件,如Arduino Mega 2560 programmers.txt <strong>Firmwares</strong> 一些固件程序 <strong>Libraries</strong> 开源库文件,比如eprom,wifi,wire等库文件 <strong>Variants</strong> 针对不同芯片定义的引脚文件
2、programmers.txt
以avr isp为例:
See: http://code.google.com/p/arduino/wiki/Platforms avrisp.name=AVR ISP //在菜单里面呈现出的编程器名称 avrisp.communication=serial //使用的通信接口 avrisp.protocol=stk500v1 //使用的编程协议 avrispmkii.name=AVRISP mkII avrispmkii.communication=usb avrispmkii.protocol=stk500v2 usbtinyisp.name=USBtinyISP usbtinyisp.protocol=usbtiny usbasp.name=USBasp usbasp.communication=usb usbasp.protocol=usbasp parallel.name=Parallel Programmer parallel.protocol=dapa parallel.force=true # parallel.delay=200 arduinoisp.name=Arduino as ISP arduinoisp.communication=serial arduinoisp.protocol=stk500v1 //上位机编程协议 arduinoisp.speed=19200 //上位机波特率
3、boards.txt
这些板卡的行为都是靠boards.txt(arduino-win\1.0.6\arduino-1.0.6\hardware\arduino)来约束的,以Arduino Uno为例
# See: http://code.google.com/p/arduino/wiki/Platforms ############################################################## uno.name=Arduino Uno //板卡的名称 uno.upload.protocol=arduino //上位机软件使用的协议 uno.upload.maximum_size=32256 //hex最大字节数 uno.upload.speed=115200 //串口波特率 uno.bootloader.low_fuses=0xff //低位熔丝值,与avr芯片的熔丝位相对应 uno.bootloader.high_fuses=0xde //高位熔丝值,与avr芯片的熔丝位相对应 uno.bootloader.extended_fuses=0x05 //扩展熔丝位,有的芯片需要 uno.bootloader.path=optiboot //bootloader文件存储路径 uno.bootloader.file=optiboot_atmega328.hex //芯片需要的bootloader文件名 uno.bootloader.unlock_bits=0x3F uno.bootloader.lock_bits=0x0F uno.build.mcu=atmega328p //板卡cpu型号,可以从avrdude中获取 uno.build.f_cpu=16000000L //板卡使用的晶振频率,用于计算函数库的延时,定时器等函数所需要的参数 uno.build.core=arduino //单片机程序核心代码所在的位置,这里定义了所有芯片的通用功能,提供了通用的功能,比如延时,串口通信,按键,输入输出等基本通用功能 uno.build.variant=standard //不同型号芯片的引脚功能定义 ############################################################## atmega328.name=Arduino Duemilanove w/ ATmega328 atmega328.upload.protocol=arduino atmega328.upload.maximum_size=30720 atmega328.upload.speed=57600 atmega328.bootloader.low_fuses=0xFF atmega328.bootloader.high_fuses=0xDA atmega328.bootloader.extended_fuses=0x05 atmega328.bootloader.path=atmega atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex atmega328.bootloader.unlock_bits=0x3F atmega328.bootloader.lock_bits=0x0F atmega328.build.mcu=atmega328p atmega328.build.f_cpu=16000000L atmega328.build.core=arduino atmega328.build.variant=standard