📄 readme.htm
字号:
<p>是否支持使用超级终端作为上位机软件进行升级?</p>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td valign="top">
<p>答:</p>
</td>
<td valign="top">
<p>这个程序支持使用超级终端作为上位机软件进行下载。如果使用超级终端下载,那么串口缓冲区的大小必须定义为128,同时要将等待密码和等待文件的超时时间设置大一些(TimeOutCnt/TimeOutCntC和timeclk的乘积),避免来不及输入而超时造成不能进入Bootloader模式;否则可以设置小一些,缩短启动带来的延时。使用超级终端时,注意密码不要设置得太长,一般以1-3个字符为好,不然很难输入成功。此外校验方式CRCMODE需要设置为0,下载前还需要将用户的HEX目标文件转换为BIN格式。下载时,在超级终端中输入联机密码后,在发送文件时选择标准XMODEM协议就可以下载BIN格式的用户程序了。<br>
其实本项目中带的专用上位机下载软件也不错的,支持HEX和BIN文件格式,下载时只需要按一下鼠标,适合于批量下载,推荐使用。<br> </p>
</td>
</tr>
<tr>
<td valign="top">4.</td>
<td valign="top">
<p>问:</p>
</td>
<td valign="top">
<p>怎样判断串口通信是否正常(硬件连接是否正常)?</p>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td valign="top">
<p>答:</p>
</td>
<td valign="top">
<p>示例程序test.c可以用于测试系统的串口通信是否正常。程序运行时不断向串口发送数据(默认是一个">"),同时检测串口是否收到数据。如果接收到数据,就将发送的数据改为新收到的数据。可以用超级终端联机调试。如果在调试Bootloader遇到问题,无法通信时可以先试试这个程序是否可以正常运行。如果test可以正常运行,那么一般就没有太大的问题了。<br> </p>
</td>
</tr>
<tr>
<td valign="top">5.</td>
<td valign="top">
<p>问:</p>
</td>
<td valign="top">
<p>为什么升级完后不能跳转到用户程序?</p>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td valign="top">
<p>答:</p>
</td>
<td valign="top">
<p>如果不能正确跳转到用户程序,一般有以下几种情况(90%以上):</p>
<ul>
<li>使用的GCC编译器存在bug,造成某些型号的单片机不能正确跳转。可以尝试升级GCC到新版本,也可以查看反汇编代码进行分析(在AVR Studio的仿真模式下查看Disassemble,软件仿真或硬件仿真模式都可以)。</li>
<li>熔丝位设置错误。</li>
<li>参数设置错误,如Bootloader段地址错误。<br>
</li>
</ul>
</td>
</tr>
<tr>
<td valign="top">6.</td>
<td valign="top"><p>问:</p>
</td>
<td valign="top">
<p>怎样裁剪掉不用的功能?</p>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td valign="top"><p>答:</p>
</td>
<td valign="top">
<p>在bootcfg.h文件中有很多宏定义,将宏设置为0,或者设置为空就可以将其对应的功能裁剪。比如不使用LED指示状态的功能,可以将宏LEDEn设置为0。<br> </p>
</td>
</tr>
<tr>
<td valign="top">7.</td>
<td valign="top">
<p>问:</p>
</td>
<td valign="top">
<p>怎样减少Bootloader代码的大小,留出更多空间给用户程序?</p>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td valign="top">
<p>答:</p>
</td>
<td valign="top">
<p>可以裁减掉不必要的功能,如冗余的提示信息、LED状态指示、将CRC校验改为累加和校验等。还可以打开程序的优化选项,选择代码大小优化。不同版本的GCC之间的优化效果是不同的。此外C语言优化时具有一定的不确定性,选用代码大小优化得到的最终代码有时并不是最小的。<br> </p>
</td>
</tr>
<tr>
<td valign="top">8.</td>
<td valign="top">
<p>问:</p>
</td>
<td valign="top">
<p>是否可以支持其它C编译器?</p>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td valign="top">
<p>答:</p>
</td>
<td valign="top">
<p>本项目使用了WinAVR带有的GCC编译器,其它编译器目前没有试验过。IAR C编译器和GCC最为接近,我想只要做很小的修改就可以了(AVR USB就是可以同时GCC和IAR C编译器);其它编译器应当也可以,因为我在编写代码时,是尽量按照ANSI C的规范编写。可能需要修改的地方应该在头文件部分,以及一些寄存器的名称上。不同的C编译器在声明同样的寄存器或参数时存在一些差异。<br> </p>
</td>
</tr>
<tr>
<td valign="top">9.</td>
<td valign="top">
<p>问:</p>
</td>
<td valign="top">
<p>在什么地方可以下载本程序的最新版本?</p>
</td>
</tr>
<tr>
<td valign="top"> </td>
<td valign="top">
<p>答:</p>
</td>
<td valign="top">
<p>在 <a href="http://avrubd.googlepages.com" target="_blank">http://avrubd.googlepages.com</a> 上可以下载到最新版本。一般情况下我也会在OURAVR上提供最新的版本。如果有任何建议,或者上述地址无法访问时,可以发EMail到 <a href="mailto:shaoziyang@gmail.com?subject=AVRUB">shaoziyang@gmail.com</a>。<br> </p>
</td>
</tr>
</table>
<p><a href="readme.htm#b0" name="b4">▲</a></p>
<h1>特别感谢</h1>
<p>在此特别感谢下面这些为此程序做出贡献的人:</p>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="120" valign="top">
<p>刘海涛 </p>
</td>
<td width="990" valign="top">
<p>在程序编写和调试时提供了很多帮助和资料</p>
</td>
</tr>
<tr>
<td width="120" valign="top">
<p>tda1552</p>
</td>
<td width="990" valign="top">
<p>测试了ATmega32</p>
</td>
</tr>
<tr>
<td width="120" valign="top">
<p>徐延康</p>
</td>
<td width="990" valign="top">
<p>发现HEX文件转换中错误</p>
</td>
</tr>
<tr>
<td width="120" valign="top">
<p>倪恩伟</p>
</td>
<td width="990" valign="top">
<p>提出许多有用的建议</p>
</td>
</tr>
<tr>
<td width="120" valign="top">
<p>程翔</p>
</td>
<td width="990" valign="top">
<p>帮助翻译此文档成英文</p>
</td>
</tr>
<tr>
<td width="120" valign="top">
<p>Luiz Francisco Catalan</p>
</td>
<td width="990" valign="top">
<p>发现大于在程序64K时校验的错误,在测试PC1解密程序中给予了很多帮助</p>
</td>
</tr>
</table>
<p>以及很多没有留下姓名但提出宝贵建议或进行了测试的网友。</p>
<p><a href="readme.htm#b0" name="b11">▲</a></p>
<h1>使用许可</h1>
<p>本项目基于GPL协议。</p>
<p><a href="#b0" name="b12">▲</a></p>
<p> </p>
<p align="right">邵子扬 2007.6 于武汉</p>
<p> </p>
<table width="100%" cellpadding="0" cellspacing="0" align="center">
<tr>
<td width="100%" nowrap>
<p align="center"> e Y8b Y8b YV3.08P888 88e <br>
d8b Y8b Y8b Y888P 888 888D <br>
d888b Y8b Y8b Y8P 888 88" <br>
d888WuHan8b Y8b Y 888 b, <br>
d8888888b Y8b Y8P 888 88b, <br>
8888 8888 ,e, 888 <br>
8888 888820078e " Y8b Y888P ,e e, 888,8, dP"Y ,"Y88b888 <br>
8888 8888888 88b888 Y8b Y8P d88 88b888 " C88b "8" 888888 <br>
8888 8888888 888888 Y8b " 888 ,888 Y88D,ee 888888 <br>
'Y88 88P'888 888888 Y8P "YeeP"888 d,dP "88 888888 <br>
888 88b, d8 888 888 <br>
888 88P' e88 88e e88 88e d88 888 e88 88e ,"Y88b e88 888 ,e e, 888,8, <br>
888 8K d888 888bd888 8Shaoziyang88d888 888b"8" 888d888 888d88 88b888 " <br>
888 88b,Y888 888PY888 888P 888 888Y888 888P,ee 888Y888 888888 ,888 <br>
888 88P' "88 88" "88 88" 888 888 "88 88" "88 888 "88 888 "YeeP"888 <br>
<br>
<br>
<br>
__ <br>
/ _) <br>
/(_)(/ __ <br>
/ (_ |_ _. _ _ o _.._ _ <br>
__)| |(_|(_) /_|\/(_|| |(_|<br>
/ _|</p>
</td>
</tr>
</table>
<p> </p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -