宿舍搞个路由器从新设置怎么搞怎么样

Arduino之bootloader烧写_红颜漠_新浪博客
Arduino之bootloader烧写
因为手贱,昨天用progisp软件把Arduino上的ATMega328P单片机中预置的bootloader程序给擦除了,后来就悲剧了。。。Arduino程序写不进去了,一个好好Arduino开发板变成了一个普通的AVR开发板了。
为了恢复Arduino的功能,必须得重新给ATMega328P单片机里烧写bootloader(其实Arduino就是在AVR单片机中预置了一个bootloader程序,这样再配合Arduino开发环境就是所谓的Arduino了,但Arduino这个词本身只留给官方使用)。当然在淘宝上也能买到已经烧写好的AVR单片机,只是自己手上已经有了AVR单片机,就没必要去花那冤枉钱了。
于是马上打开万能的百度,输入关键字“Arduino
bootloader”果然,一大堆乱七八糟相关的问题就出来了,经过一轮的筛选,发现许多说的也并不是很清晰,不过让我明白了个大概:一个普通的AVR单片机确实能烧写bootloader之后作为Arduino使用。那么问题来了,如何把bootloader烧录到AVR单片机中去了?这的确是个问题,反正对于不懂AVR开发的我来说是个问题。不过还好之前在淘宝上买了一个USBASP下载器,跟之前擦除bootloader一样,也要用到progisp软件(因为此时的ATMega328P只是一个普通的AVR单片机,用Arduino开发软件是烧写不进去的)。
既然要烧录bootloader,那么什么是bootloader呢?正如你所想,bootloader当然是一个程序,既然要烧录到单片机中去,应该是一个.HEX之类的文件。但是,bootloader文件从哪来呢?继续百度。。。找到了,在Arduino软件安装目录中的hardware\arduino中。此文件夹下的“boards.txt”文件很重要,是很重要,其他的或许都可以在百度上找到,但因为这个文件折腾了我大半个晚上,百度上也没有明确的说明。打开文件,找到自己对应的Arduino版本,因为我的是“Arduino
Uno”,于是锁定“uno.name=Arduino
Uno”区域的说明,因为看上去很乱,一定要仔细去看。找到“uno.bootloader.low_fuses=0xff"指编程熔丝低位为FF,”uno.bootloader.high_fuses=0xde“指编程熔丝高位为DE,”uno.bootloader.extended_fuses=0x05“指扩展位为05。这三个值非常重要,是决定你烧录bootloader成功的关键。至于这三个值具体是什么意思,我也不是很不清楚,但AVR单片机的烧录时需要设置熔丝位,而且不能乱设置,这也是AVR跟51单片机的不同之处。
用progisp软件把这三个熔丝位的值写入到AVR单片机中,然后继续浏览”boards.txt“文件往下看,找到”uno.bootloader.path=optiboot“这就是说要烧录的bootloader文件在bootloaders\option文件夹中,“uno.bootloader.file=optiboot_atmega328.hex”文件名就是optiboot_atmega328.hex,这就是接下来需要烧录到AVR单片机中的程序。用progisp软件调入此文件,然后直接写入到AVR单片机中就行了,一个支持Arduino的AVR就做好了。。。
其实这个问题本身不难,但对于没接触过AVR的人来说,还是要花许多时间的,中间也会存在许许多多各种各样的问题。至于progisp的使用方法很简单,百度上的教程也很多,还有手上必须有一块可以烧录AVR单片机的下载器。我当时就是忽略了那三个熔丝位的值,所以反反复复也没有成功,百度上面也没有对”boards.txt“文件做详细的解释。没设置熔丝位程序是可以正常的烧录进去,但Arduino是不能用的,所以必须要按照官网给出的说明操作。我当时大多数时间主要花在两个问题上,一个是.HEX文件具体位置,因为Arduino有不同的版本,所以.HEX文件也不同,还有一个就是熔丝位上。
对于这些问题,我觉得很有必要写下来,虽然这算不上什么高深的问题,但有时候往往一个小问题才最让人揪心。
博客等级:
博客积分:0
博客访问:1,609
关注人气:0
荣誉徽章:USBTinyISP&Arduino官方下载器/编程器使用
USBTinyISP Arduino官方下载器/编程器
USBTinyISP是一个方便使用的高速的AVR编程器。是Arduino官方支持的一款固件烧录器。
兼容AVRdude-&支持usbtiny(在版本5.5以后)
高速!最大时钟频率为400KHz。写入速率:1Kb/s,&读取速率:
2Kb/s. (Atmega8&写入大概花费8s,&读取/验证大概花费4s)
两个LED用来标识"USB/电源正常"&和&"忙状态"
带有缓冲的I/O&端口允许对2V-6V的目标进行编程
采用小于100mA的USB电源进行供电,可以运行在低电压的USB总线。
方便的跳冒来设置给通过USB给目标板供电(当然目标可以接受5V)。
移除跳冒,它可将自己供电但是带有缓冲的I/O来匹配目标设备。
方便和libusb进行对接。
现存的固件允许对快速的SPI接口使用USB。
Bit-bang&命令提供8为I/O控制(包括LED)对于开放式的项目想法。
支持linux吗?
是的,我们在linux
(Ubuntu 7.04)上测试过哦。它不需要任何其他设置如果你发现有问题,请确保你以root权限操作设备。
为什么没有串口/COM/端口&(或者某某设备)出现&?
USBtiny不是一个USB-Serial设备,它有自己的Avrdude支持的USB协议。当你插入到USB时将看不到一个COM端口或者串口建立。
我可以像Arduino一样使用USBtiny发送串口信息或者编程吗?
不可以,USBtiny不会创建一个串口所以不能那样做。他直接对芯片进行编程,使用ISP连接,不是串口。Arduino&不是AVR编程器,他们是一个运行在串口上的带有bootloader的AVR。
我可以使用USBtinyISP烧写bootloader(像arduino)吗?
可以,这就是一个AVR编程器可以做的。我们推荐使用IDE里内建的bootloader-烧写器(在菜单&Tools-&Burn
Bootloader-&W/USBTinyISP)来进行操作。
我如何对一个Arduino烧写固件?
How do I program a bootloader onto an Arduino?
1.&将一个新的AVR芯片(例如:Atmega328)以正确的方向插入到Arduino的IC插座上。
2.&插入USBtinyISP&的PWR跳冒。
3.&将USBTiny插入USB。
ISP转接线将USBtinyISP&连接到Arduino,注意方向不要插反。
5.&代开Arduino
IDE&选择你的Arduino使用的芯片类型:Tools-&Board
menu,不需要选择COM/Serial&端口。
6.&选择Tools-&Burn
Bootloader-&w/USBtinyISP开始烧录固件。
7.&USBtinyISP&红色的LED应该亮起。烧录将花费一两分钟左右。
8.&当成功完成烧录,IDE将告诉你它完成了并且红色的LED将会熄灭。
它支持8051内核(AT89)系列的芯片编程吗?Does
this work with the 8051-core (AT89) series chips?
USBtinyISP&被设计成只能工作于AVR内核芯片(ATtiny,ATmega,等等)
什么是自编程?
原始的USBtinyISP可以设置“self
prog“跳冒可以通过另外一个给自己编程。现在这成了一个缓冲不再启用,你可以直接忽略这个跳冒。同样不能自我升级。
如何使用它!
USBtinyISP相当容易使用,但是这里有一些提示。
有两个LED,一个绿色的靠近USB插座和一个红色的靠近ISP插座。There
are two LEDs, a green one near the USB port and a red one near the
绿色LED标识USB连接成功。如果你是用Windows或者Linux系统,当你插入USB绿色的LED不亮,那就有问题。如果你使用MacOS,尝试通过avrdude发送命令-然后LED应该亮起(很奇怪但是是真的!)。
红色的LED标识USBtinyISP正在烧录(忙)。当设备被编程者它就会点亮的时候不能拔下USB。不过,如果发生软故障这个LED可能保持发亮虽然它什么都不干。
编程电缆Programming
有两个电缆编程:一个10pinISP电缆和一个6pinISP电缆。这个编程器(还)不能进行JTAG编程。
紧贴着ISP插座有一个跳冒JP3。当这个跳冒被放置(短接两个引脚)意味着USBTinyISP提供5V电源到目标板。如果你不想给目标板供电只需吧这个跳冒拿掉或者确保只放在一个引脚上。
USBtinyISP只能提供5V,最高大概100mA电流到目标板。如果你需要更大的电源那么你应该移除这个跳冒JP3,单独给目标板供电。
如果你的目标板为低电压3.3V或者更低,不要放置JP3跳冒!
作为一个SPI接口使用
USBtinyISP&可以被用作通用SPI设备。如何使用这个最好的地方是去查看avrdude的源代码阅读usbtiny.c。
在Windows下,你将需要安装USB驱动。
有两个版本的驱动。一个版本为1.10一个为1.12.如果你打算使用最新的WinAVR那么你必须使用1.12版本.
下一步,连接USB电缆,此时你应该看到弹出的
然后出现找到新硬件向导.
not this time",点击下一步
选这"Search
for the driver"&勾上"Include
this location"&然后浏览到解压好的驱动目录。
驱动安装结束!现在到设备管理器(Start
Menu -& Settings -& Control Panel -& System -&
Hardware)查看设备:
Mac OS X & Linux
不需要安装驱动
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 路由器从新设置怎么搞 的文章

 

随机推荐