Arduino IDE 配置文件
来源:互联网 发布:微整形后遗症知乎 编辑:程序博客网 时间:2024/05/02 06:44
最近学习Arduino。
Arduino开源硬件和Arduino IDE是一个很容易上手的系统。
目前arduino已经支持很多种板类型,甚至已经支持了部分arm芯片。比如arduino ng、arduino uno、arduino mini、pro mini等。但是大多数情况,都是使用的atmega8/atmega168/atmega328/atmega1280/atmega2560等芯片。
在单片机代码中,需要对不同的引脚、定时器、接口进行操作,由于不同单片机引脚和功能不一样,因此代码无法共用。那么,arduino是如何做到用一份代码就可以分别在不同类型的板子上执行呢?
其实arduino实现了一个框架,针对不同的芯片,把相同的部分提供一套通用机制,不同的部分抽象出来,制定一套规则,只要所有的芯片都遵守这个规则,就可以正常的工作起来。
固件目录:
其实这些编程器是通过programmers.txt定义的(arduino-win\1.0.6\arduino-1.0.6\hardware\arduino),这个文件里面主要定义了编程器需要遵守的规则:
打开arduino ide--->工具--->板卡,可以看到arduino支持的板卡。
4、platform.txt
这个文件里定义了编译步骤,以及每个文件编译使用的编译选项。可以在文件à参数选项 里把显示编译详细信息勾选上,与该txt文件中的内容对比起来看。
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,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 2560programmers.txt<strong>Firmwares</strong> 一些固件程序<strong>Libraries</strong> 开源库文件,比如eprom,wifi,wire等库文件<strong>Variants</strong> 针对不同芯片定义的引脚文件
2、programmers.txt
其实这些编程器是通过programmers.txt定义的(arduino-win\1.0.6\arduino-1.0.6\hardware\arduino),这个文件里面主要定义了编程器需要遵守的规则:
以avr isp为例:
See: http://code.google.com/p/arduino/wiki/Platformsavrisp.name=AVR ISP //在菜单里面呈现出的编程器名称avrisp.communication=serial //使用的通信接口avrisp.protocol=stk500v1 //使用的编程协议avrispmkii.name=AVRISP mkIIavrispmkii.communication=usbavrispmkii.protocol=stk500v2usbtinyisp.name=USBtinyISPusbtinyisp.protocol=usbtinyusbasp.name=USBaspusbasp.communication=usbusbasp.protocol=usbaspparallel.name=Parallel Programmerparallel.protocol=dapaparallel.force=true# parallel.delay=200arduinoisp.name=Arduino as ISParduinoisp.communication=serialarduinoisp.protocol=stk500v1 //上位机编程协议arduinoisp.speed=19200 //上位机波特率
3、boards.txt
打开arduino ide--->工具--->板卡,可以看到arduino支持的板卡。
这些板卡的行为都是靠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=0x3Funo.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/ ATmega328atmega328.upload.protocol=arduinoatmega328.upload.maximum_size=30720atmega328.upload.speed=57600atmega328.bootloader.low_fuses=0xFFatmega328.bootloader.high_fuses=0xDAatmega328.bootloader.extended_fuses=0x05atmega328.bootloader.path=atmegaatmega328.bootloader.file=ATmegaBOOT_168_atmega328.hexatmega328.bootloader.unlock_bits=0x3Fatmega328.bootloader.lock_bits=0x0Fatmega328.build.mcu=atmega328patmega328.build.f_cpu=16000000Latmega328.build.core=arduinoatmega328.build.variant=standard
4、platform.txt
这个文件里定义了编译步骤,以及每个文件编译使用的编译选项。可以在文件à参数选项 里把显示编译详细信息勾选上,与该txt文件中的内容对比起来看。
1 0
- Arduino IDE 配置文件
- 安装Arduino IDE
- Arduino IDE for ESP8266
- Debian安装Arduino IDE
- 1.4 Arduino IDE
- Arduino IDE介绍 下载----记录学习Arduino
- ROS-kinetic 与Arduino-Arduino IDE 安装
- ubuntu下使用arduino IDE
- Arduino IDE in Ubuntu 12.04
- ESP8266-01 使用 Arduino IDE
- Arduino IDE的#ifdef bug
- 4.Arduino IDE代码如下
- arduino ide找不到目标文件
- ROS系列 Arduino IDE设置
- Arduino IDE 编译生成过程
- Ubuntu上安装Arduino IDE
- Arduino IDE for ESP8266教程
- Arduino IDE for Visual Studio
- 【Android】Android中WIFI开发总结(二)
- 500.jsp
- Foundation中常用的几种数据类型
- IDL文件模版
- 解析mysql binlog 报错:ErrorPacket[packetMarker=255,errorCode=1236,slash=#,sqlState=HY000,errorMessage=bo
- Arduino IDE 配置文件
- 解决android:background背景图片被拉伸问题
- MyEclipse8 中安装Freemarker插件
- vs2013中如何给一个项目添加MFC支持
- xcrun: error: active developer path
- spring编码拦过滤器配置范例
- 嵌入式博客
- JDBC编程
- 在LINUX中性能测试监控中常用的TOP命令中,部分字段代表的真正含义