极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 35510|回复: 7

Arduino IDE 配置文件

[复制链接]
发表于 2014-4-23 22:12:11 | 显示全部楼层 |阅读模式

       这几天学习Arduino,我也来发一个帖子。
       Arduino开源硬件和Arduino IDE是一个很容易上手的系统,软件和硬件都是搭积木的方式。网络上有很多爱好者,为这个“电子积木”开发零件。我们这些学习者和使用者只需要充当设计师把各个零件简单的组合在一起就可以实现很多复杂和奇妙的功能了。

    目前arduino已经支持很多种板类型,甚至已经支持了部分arm芯片。比如arduino ng、arduino uno、arduino mini、pro mini等。但是细心的就会发现,其实多数都是使用的atmega8/atmega168/atmega328/atmega1280/atmega2560等芯片。

    大家都知道,单片机代码中,需要对各个管脚,各种定时器,接口进行操作,由于不同单片机管脚和功能不一样,导致代码不能共用。但是我不知道有多少同学和我一样好奇,想知道arduino是怎么做到用一份代码就可以分别在不同类型的板子上执行呢?

    其实arduino实现了一个框架,针对不同的芯片,把相同的部分提供一套通用机制,不同的部分抽象出来,制定一套规则,只要所有的芯片都遵守这个规则,就可以正常的工作起来。就比如现在生产电脑配件的厂家有很多种,每个厂家的电路实现完全不一样,但是他们只要遵守相同的规则,把他们插在主板上都是可以正常工作的。

    这次主要讲讲arduino各种板子配置文件的规则。下次会讲代码是按照什么规则达到共用一套的。

1、programmers.txt
    打开arduino ide依次选择菜单工具à编程器,可以看到有很多编程器选项。


    其实这些编程器是通过programmers.txt定义的,这个文件里面主要定义了编程器需要遵守的规则:
以avr isp为例:
#在菜单里面呈现出的编程器名称
avrisp.name=AVR ISP
#使用的通信协议
avrisp.communication=serial
#编程器使用的编程协议
avrisp.protocol=stk500v1
#上位机软件使用的编程协议
avrisp.program.protocol=stk500v1
#使用的上位机软件名称
avrisp.program.tool=avrdude
#扩展参数
avrisp.program.extra_params=-P{serial.port}


2、boards.txt


    打开arduino ide依次选择工具à板卡,可以看到arduino支持的板卡。
    这些板卡的行为都是靠boards.txt来约束的,以Arduino Uno为例
#板卡的名称
uno.name=Arduino Uno
#hex文件上载到板卡中所使用的上位机软件
uno.upload.tool=avrdude
#上位机软件使用的协议
uno.upload.protocol=arduino
#hex最大字节数
uno.upload.maximum_size=32256
#串口波特率
uno.upload.speed=115200

#烧录bootloader时使用的上位机软件
uno.bootloader.tool=avrdude
#低位熔丝值,与avr芯片的熔丝位相对应
uno.bootloader.low_fuses=0xFF
#高位熔丝值,与avr芯片的熔丝位相对应
uno.bootloader.high_fuses=0xDE
#扩展熔丝位,有的芯片需要
uno.bootloader.extended_fuses=0x05
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
#芯片需要的bootloader文件
uno.bootloader.file=optiboot/optiboot_atmega328.hex

#板卡cpu型号,可以从avrdude中获取
uno.build.mcu=atmega328p
#板卡使用的晶振频率,用于计算函数库的延时,定时器等函数所需要的参数
uno.build.f_cpu=16000000L
#单片机程序核心代码所在的位置,这里定义了所有芯片的通用功能,提供了通用的功能
#比如延时,串口通信,按键,输入输出等基本通用功能

uno.build.core=arduino
#不同型号芯片的引脚功能定义
uno.build.variant=standard

3、platform.txt
        这个文件里定义了编译步骤,以及每个文件编译使用的编译选项。可以在文件à参数选项 里把显示编译详细信息勾选上,与该txt文件中的内容对比起来看。


4、其它文件夹


Bootloaders 不同芯片需要的bootloader文件
Cores 单片机程序核心代码所在的位置,这里定义了所有芯片的通用功能,提供了通用的功能比如延时,串口通信,按键,输入输出等基本通用功能
Firmwares 一些固件程序
Libraries 开源库文件,比如eprom,wifi,wire等库文件
Variants 针对不同芯片定义的引脚文件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-4-23 22:53:03 | 显示全部楼层
Great, go on!
回复 支持 反对

使用道具 举报

发表于 2014-4-25 06:45:07 | 显示全部楼层
非常清楚,谢谢
回复 支持 反对

使用道具 举报

发表于 2014-9-26 14:34:12 | 显示全部楼层
楼主您好 我在网上按照那个让arduino IDE 支持ATtiny13的文章,在中途出现找不到其对应的.h文件,您有空可以帮忙试试吗 这个是那篇文章http://www.ndiy.cn/thread-23641-1-1.html
回复 支持 反对

使用道具 举报

发表于 2015-7-10 10:09:15 | 显示全部楼层
不错,进来学习一下!
回复 支持 反对

使用道具 举报

发表于 2016-2-6 09:57:28 | 显示全部楼层
在学习中,感谢分享
回复 支持 反对

使用道具 举报

发表于 2016-5-31 00:00:07 | 显示全部楼层
学习学习学习学习
回复 支持 反对

使用道具 举报

发表于 2016-11-25 14:59:12 | 显示全部楼层
谢谢分享     
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 23:45 , Processed in 0.041289 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表