永远的白身
有必要整理一下了
xiaozhang 发表于 2008-03-12 21:32:24
好久没有更新BLOG了,有点懒了^_^。既然这样,就来写一下自己的工作情况吧。
去年7月来单位。闲了2个月后,开始做项目了。是用C做51方面的开发,实现调制解调器的固件下载及配置的功能。把POWERPC上的框架移植到了51体系上来,在添加了SPi功能(固件放在外接FLASH中)就OK了。调试的时候遇到一堆问题。没有仿真器,我就用串口通过FLASH MON51方法来调试,它默认的波特率是9600(不初始话串口),用起来太慢了,索性把串口初始话到115200,可以用!快多了。
这种方法也有一些缺点,每次想重新调试时,必须重新把配置程序烧到51指定地址上。我遇到最麻烦的就是单步调试时,用结构指针传递参数,指针地址经常出错。然而把程序烧进去确可以运行。后来小心分配那几K内存,为每个参数指定内存类型 ,试了很久,终于单步不会错了。具体原因,没搞懂。。。
延时在程序中也是比较重要的。刚开始程序调完了,下载不到200K的固件要10多分钟(心理汗啊),问题就出在延时函数上面,我开始用的是FOR循环来延时,改为用几个NOP后,下载变得只要1分钟左右。又换了高频的晶振,又缩短了三分之一。
最近又在FREERTOS+UIP的基础上做了个SNTP客户端,本来想用UCOS+LWIP的,可是调了一个星期连WEB服务器都没搞通,郁闷的。UIP的UDP功能还不完善。没有校验和。它的接收跟发送数据都放在一起(UIP_BUF),还不知道会不会影响整个软件的性能。其实进行UDP链接时,UIP_SEND 以及UIP_UDP_SEND都可以用来发送数据(UIP参考手册说UIP_SEND 用于TCP链接),虽然前一个用UIP_SAPPDATA,而后一个用UIP_APPDATA指针,但他们都是指向UIP_BUF的同一处的。
要注意一个很简单的问题,就是发送和接受数据最好用判断语句隔离开来,因为发送和接受不是一起被执行的,如下面,
udp_appcall(){
if(!uip_newdata()){
send_data();}
if(uip_newdata()){
do _something();
}
}
发送完后,可能暂时uip_newdata=0,下次发现有数据时,调用UDP_APPCALL时,又一次调用了send_data,这样UIP_BUF中接收的数据就会被覆盖。所以应该在前也+个判断语句,如:
udp_appcall(){
if(!uip_newdata()){
send_data();}
if(uip_newdata()){
do _something();
}
}
现在正在做ARM SPI口的通讯。等各个模块集成在一起再整理吧^_^
去年7月来单位。闲了2个月后,开始做项目了。是用C做51方面的开发,实现调制解调器的固件下载及配置的功能。把POWERPC上的框架移植到了51体系上来,在添加了SPi功能(固件放在外接FLASH中)就OK了。调试的时候遇到一堆问题。没有仿真器,我就用串口通过FLASH MON51方法来调试,它默认的波特率是9600(不初始话串口),用起来太慢了,索性把串口初始话到115200,可以用!快多了。
这种方法也有一些缺点,每次想重新调试时,必须重新把配置程序烧到51指定地址上。我遇到最麻烦的就是单步调试时,用结构指针传递参数,指针地址经常出错。然而把程序烧进去确可以运行。后来小心分配那几K内存,为每个参数指定内存类型 ,试了很久,终于单步不会错了。具体原因,没搞懂。。。
延时在程序中也是比较重要的。刚开始程序调完了,下载不到200K的固件要10多分钟(心理汗啊),问题就出在延时函数上面,我开始用的是FOR循环来延时,改为用几个NOP后,下载变得只要1分钟左右。又换了高频的晶振,又缩短了三分之一。
最近又在FREERTOS+UIP的基础上做了个SNTP客户端,本来想用UCOS+LWIP的,可是调了一个星期连WEB服务器都没搞通,郁闷的。UIP的UDP功能还不完善。没有校验和。它的接收跟发送数据都放在一起(UIP_BUF),还不知道会不会影响整个软件的性能。其实进行UDP链接时,UIP_SEND 以及UIP_UDP_SEND都可以用来发送数据(UIP参考手册说UIP_SEND 用于TCP链接),虽然前一个用UIP_SAPPDATA,而后一个用UIP_APPDATA指针,但他们都是指向UIP_BUF的同一处的。
要注意一个很简单的问题,就是发送和接受数据最好用判断语句隔离开来,因为发送和接受不是一起被执行的,如下面,
udp_appcall(){
if(!uip_newdata()){
send_data();}
if(uip_newdata()){
do _something();
}
}
发送完后,可能暂时uip_newdata=0,下次发现有数据时,调用UDP_APPCALL时,又一次调用了send_data,这样UIP_BUF中接收的数据就会被覆盖。所以应该在前也+个判断语句,如:
udp_appcall(){
if(!uip_newdata()){
send_data();}
if(uip_newdata()){
do _something();
}
}
现在正在做ARM SPI口的通讯。等各个模块集成在一起再整理吧^_^
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
ARM学习
xiaozhang 发表于 2007-09-24 20:00:56
上周五刚拿到定的开发板(SAM7X256-EK),做工还可以,可惜软件包里面内容比较少,连开发板使用说明都没有。只有自己慢慢消化了。 板子采用USB供电,USB线路连接好后,发现USB设备不能识别,师傅指点,要先ERASE跳线接3.3V->上电->下电->去跳线->上电。操作了下果然可以。心里面在考虑为什么要这样,仔细研究了芯片的DATASHEET后,在Memory 和AT91SAM BOOT PROGRAM中找到了线索。 根据上面的资料,可以知到,上电后(或者RESET)指令是由地址0X0开始执行的。在没有REMAP之前,是由GPNVM Bit 2决定FLASH还是ROM来MAP到0X0~0XF FFFF中。也就等同于决定BOOT FROM FLASH 还是BOOT FROM ROM。ERASE跳线接3.3V->上电,来清掉FLASH中内容,同时使GPNVM BIT2=0.下电->去跳线->上电,因为BIT 2=0,所以执行ROM中的内容,根据AT91SAM BOOT PROGRAM中描述,它能初始化USB设备。(进入SAM_BA中,可以验证地址0X0开始的内容和地址0X00300000开始的内容一样) 因此用SAM_BA时,通过USB来进入要执行前面的步骤。最后往FLASH里面烧入BIN文件后,一定要在script选项中选择ENABLE GPNVM(让BIT 2=1)才能使得RESET后,FLASH中烧入的程序才能跑起来。
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
接着继续
xiaozhang 发表于 2007-09-13 22:10:48
大半个月前最小系统的PCB已经画好了,可是做的话太贵,想直接买块开发板,上周末去南京想买块,
可是找遍了整个华龙电子城都没买到。发现AT91中7系列的班子还真少,网上买的大部分是个人做的,郁闷的~
既然这样,我也自己来做做吧,也让自己熟悉一下流程。原理图之前已经画好了大部分,这两天又按照DEMO版补充和修改了一下,大部分时间在根据芯片DATASHEET画封装,还差个物理层收发器和USB滤波芯片没画好,明天能搞定,然后就可以LAYOUT了,我参考了网上的开发版,大概确定了板子的尺寸以及每个部件的位置,元件比较多布局和布线就难很多:( 估计要花一周以上的时间了。
ps:昨天找到个很不错的学习论坛:www.baisi.net,感谢这些无私奉献的网友们^_^
可是找遍了整个华龙电子城都没买到。发现AT91中7系列的班子还真少,网上买的大部分是个人做的,郁闷的~
既然这样,我也自己来做做吧,也让自己熟悉一下流程。原理图之前已经画好了大部分,这两天又按照DEMO版补充和修改了一下,大部分时间在根据芯片DATASHEET画封装,还差个物理层收发器和USB滤波芯片没画好,明天能搞定,然后就可以LAYOUT了,我参考了网上的开发版,大概确定了板子的尺寸以及每个部件的位置,元件比较多布局和布线就难很多:( 估计要花一周以上的时间了。
ps:昨天找到个很不错的学习论坛:www.baisi.net,感谢这些无私奉献的网友们^_^
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
空白
xiaozhang 发表于 2007-09-04 20:26:27
前段时间一直在听伍佰的《翅膀》,后来在网上突然发现它还有一首姐妹篇叫《空白》,曲子相同,歌词不同,赶紧BAIDU来听了下,歌词写的太美了,唱出了他一贯的风格,听了不知道多少遍,贴出来和大家分享。
空白(伍佰)
晚霞静静把幕拉开 映出满天橙色云彩
金色夕阳越过金色平静海 映出你幽雅体态
蓝色彩霓层上晕开 红色小花浮了上来
暖暖的风吹着暖暖的裙摆 渗出透明的无奈
慢慢的当我发现 已经忘记你的脸
慢慢的我就出现 无可所谓的容颜
海鸥缓缓向前飞来 绿色的树增添色彩
关于你那令人心碎的神态 我想就让它空白
慢慢的当我发现 已经忘记你的脸
慢慢的我就出现 无可所谓的容颜
海鸥缓缓向前飞来 绿色的树增添色彩
关于你那令人心碎的神态 我想就让它空白
《空白》FLASH URL:http://swf.jj20.com/1/jiu/18/11-12.swf
顺便找了《翅膀》的歌词
如果我有一双翅膀我要离开这个地方我奋力一掷
我就飞到了云端可以靠近点月亮
当我离开这个地方不会再有痛苦哀伤
风儿总把沙子吹向了远方跟我一样的愿望
慢慢的当我发现已经忘记你的脸
慢慢的我就出现无可所谓的容颜
如果你要和我飞翔不要离开我的肩膀
一不小心就会失去了影像我想一个人流浪
慢慢的当我发现已经忘记你的脸
慢慢的我就出现无可所谓的容颜
如果你要和我飞翔不要离开我的肩膀
一不小心就会失去了影像我想一个人流浪
《翅膀》MP3 URL:http://k.wangyou.com/user/play.php?id=87325
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
