-
我和版主使用的同一套代码,修改为xmega64d4的bootloader,我最近几次的仿真结果是:
packNO = 1;
CH = 0X41(0x41正好是密码的第一个字节)
经过多次仿真,我发现是AVRBUD工具,在发送完密码后,我板子已经解析,板子然后发送"C"字符,AVRUBD工具接收到"C",然后板子等待AVRUBN工具发送XMODEM协议的SOH(就是0x01,XMODEM的开始命令),然而AVRUBD工具还一直在发送密码,始终不发送XMODEM的SOH,不知道为什么
-
不知道版主在使用的是有有没有遇到我这样的问题,
我用的片子是xmega64d4,环境是AS7,使用的USARTD0,波特兰38400,熔丝位BOOTRST设置为:Boot Loader Reset,配置好串口,使用AVRUBD工具下载一个新hex,发现可以:
1.密码验证正确
2.有Waiting Flash Data打印
3.显示联机成功
跟踪到这里:
putstr(msg3); //提示等待接收文件
//进入等二环节
//密码对上了,准备接收数据
//------------------------------------------------------------------------------
//每个时隙向PC机发送一个控制字符“C”,等待控制字〈soh〉
cnt = TimeOutCntC;
signal=0;
delay_us(1000);
while(signal==0)
{
if(TC_GetOverflowFlag(&TCC0)) //T1溢出
{
ioport_set_pin_high(USARTC0_485_CONTROL_GPIO);
TC_ClearOverflowFlag(&TCC0);
WriteCom(XMODEM_RWC) ; //发送 "C"
cnt--;
if(cnt == 0) //超时
{
putstr(msg2); //提示超时
quit(); //退出 bootloader
}
}
delay_us(8000);
ioport_set_pin_low(USARTC0_485_CONTROL_GPIO);//准备接收密码
if(USART_IsRXComplete(&USART)) //收到字符?
{
get_char=USART_GetChar(&USART);
if(get_char == XMODEM_SOH) //XMODEM命令开始
{signal=1;break;}
}
}
//已经收到一个起启字符了 开始更新Application
前面密码已经对上,此时AVRUBD应该发送“XMODEM_SOH”,然后我板子应该回复“C”,但是真实的情况是:
1.AVRUBD还在发送六次“41 56 52 55 42”
2.板子回复“C”
3.AVRUBD又发送六次“41 56 52 55 42”
4.板子回复“C”
5.然后AVRUBD工具显示:
V联机成功
X重复次数太多
X升级失败
哪里有AVRUBD工具的使用说明吗?这里为什么会这样,其实只要AVRUBD发送“XMODEN_SOH”,就可以跳转到下一个while里面?
-
这么久,没人回答,我最近也要用这个片子,LZ找到寄存器定义的描述了吗?
-
:)什么东东
-
什么东东!有没有软硬件结合呢?
-
名字怎么霸气测漏,就是不知道内容也是霸气测漏!:lol
-
我刚刚看完30分钟,怎么才能确认呀?
-
soso 发表于 2014-2-17 17:10
http://item.jd.com/11279020.html#comments-list 还是根据评价或者个人喜好买吧 有些书不一定适合每个 ...
非常感谢善意的提醒!谢谢!!!{:1_126:}
-
soso 发表于 2014-1-20 10:27
TMS320F2833x DSP应用开发与实践
作者名字?还有出版社名字?害怕买错咯,这年头书的名字都一样。。。。非常感谢!
-
ltbytyn 发表于 2014-1-17 16:01
刘和平的书不错,你可以找来看看。
你说的是不是6楼所说的那位高人出的书呢???谢谢!非常感谢!!!
-
soso 发表于 2013-8-23 10:18
坛子里有个朋友最近出了本c2000的书,作者本身经验比较丰富,到时会带着大家讨论,楼主可以关注下。
这本书的名字呢?研读一下:handshake
-
这本书的名字呢?:time:
-
本帖最后由 zwl773993221 于 2014-1-17 14:15 编辑
第二个问题:如果选择了2就是说计数值等于0或等于周期寄存器的值时,T1PWM_T1CMP输出会翻转两次,每个条件复合都会翻转,不是重载两次;问题三,高电平有效是指,有效部分是高电平,强制高是指不管你什么条件T1PWM_T1CMP始终输出高电平。
-
以我的理解:两者有区别,1,计数值等于0,就是到0就翻转;2,计数值等0和等于周期寄存器值时都翻转;如果选择了2就是指:
-
:handshake
-
我已经发上面了,5枚金币要不要给。。。自己看着办{:1_138:}
-
最近,我刚好调个程序,是通过串口发送数据来调节占空比的,你要是要的话,我可以给你看看。。。
-
发你个好了,里面有详细的注释