ET's Study已经正式迁移至自己买的空间,并升级为ET's Study 2.0
新的空间将提供更快的速度和更多的功能,我很喜欢,希望我的访客们也能同样喜欢!
这将是我在mblogger.cn的最后一篇Blog,感谢mblogger陪我走过一年多的blog生涯。这里的资料我就不一篇一篇迁移过去了,比较有价值的内容会在近期做一点总结。
ET's Study 2.0的地址是www.RickySu.com,欢迎朋友们常来看看。
RSS源如果使用feedburner的可以继续使用,如果使用mblogger的则需要手动更新一下哟^_^
老妈天天晚上看电视,就看到电视中插播的广告那个多阿~~~心想,如果有个装置能自动录下电视,然后自动去掉其中的广告,那该有多好呢!
网上一搜,果然有这种东西,原来就是大名鼎鼎的Tivo!很多嵌入式的书里面都有提到过这个装置。在美国可谓获得空前成功啊。可惜中国没有Tivo,有没有谁来做中国的Tivo呢?我觉得现在应该已经是时机了。只要有钱,有心,这个市场应该有前景的。
从ARM的JTAG来看,各种JTAG板子的不同,其实就是连接的并口的Pin不同。那么是不是可以做一个万能JTAG呢?
想过是通过手动跳线来做,但如果支持所谓“无限”,就会体积很大;如果要做小,就会只支持固定的几种模式,不是“万能”了。而且手动跳麻烦一点。
看到这里有卖一种,通过CPLD来实现的。想想CPLD的确是方便的。只是双向电压转换实在麻烦。不管怎样,处理这个问题还是值得的,因为这么个简单的玩样儿就卖$129哦!!!$_$ 美元原来这么不值钱
花了100大洋买了块44B0的板子,怎么算都合算的吧:)有39VF160和HY的SDRAM,外加一个Wiggler JTAG
我原来是一点都不懂ARM的,花了一星期,终于把44B0连上电脑了~~~汗,那个累啊,在此写一些初学心得
调试ARM最便宜的方式是Wiggler Doggle,其实就是一种JTAG,使用244做电平转换(并口是5v逻辑,转换为3.3v),由PC上的软件控制时序,所以速度比较慢。
要使用Wiggler,首先就是要能够驱动并口。这一步需要安装一个特殊的并口驱动程序叫GiveIO,就是可以使软件直接控制并口的某些管脚。
然后所谓Wiggler,其实还分很多类的。一种叫做STD,还有的就称为Wiggler。其实就是使用的并口的Pin不同。
| Function |
STD |
Wiggler |
| RST |
Pin4 |
Pin2 |
| TMS |
Pin3 |
Pin3 |
| TCK |
Pin2 |
Pin4 |
| TDI |
Pin8 |
Pin5 |
| TDO |
Pin13 |
Pin11 |
使用ARM的ARM Develop Suite开发,使用AXD调试,还不可以直接连接Wiggler。还需要一个协议转换/代理服务。有很多这样的软件,也为此差了很多资料。网上很有名的就是RDI,banyan等等。我尝试了H-JTAG和ARMJtagDebug这两个软件。
H-JTAG使用RDI 1.5.1做为核心,加了许多方便的功能,使用起来很简单,打开Server,然后AXD--Option--Target Setting-- Add -- H-Jtag.dll,就行了。此时我已经能看到44B0里面的寄存器了!至此连接成功!
ARMJtagDebug连接出来的IDcode满奇怪的,0x87878787,觉得好像有问题,于是没有进一步尝试。网上有人说会有乱码,也有人说成功的。
硬件方面,由于卖家没有给我14Pin的连接线,我用杜邦头的线代替,谁知道这就出了状况。因为原板TDO一脚断了,没有发现,于是IDCode怎么都是FFFFFFFF x_x,弄得我晕了老半天。
总结:发现断针和要使用GiveIO这两个Key Point之后,别的事情就都很好解决了!
另外留几个不错的ARM网站:
LUMIT:网站 论坛
51EDA
内容:串口写
总结:
1、configure应该放在循环的外面,不要多次初始化
2、configure的时候别的参数都可以默认,默认不用特别再连constant或者control出来,但是选择com口这个参数一定需要手动设定
问题:
1、不知道Instr那个东东是干啥的,为什么所有范例程序在read前都会加Instr的number of byte?
2、怎么去判断收到的值是不是我需要的值?
原本觉得FireFox有一点不好,就是有些没有设置过字体属性的中文字就会显示超小,原来稍微设置一下就可以解决的:Tools--> Options --> Contant --> Fonts --> Advanced --> Simplified Chinese --> Minimen Font Size = 12就好了
^^ Enjoy
Ad Muncher
不是以插件的方式运行,而是直接驻留系统,所以可以过滤所有浏览器上的广告,甚至连MSN Messenger的广告都block了
不过发现使用的内存满大的,有18M竟然。。。而且不是免费的
在嵌入式系统编程里,延时是时常用到的一个功能。当然,实现延时的方法多的去了,我今天碰到了一个延时问题:
int i;
for (i=0;i<100000;i++);
一个空的循环,其结果是一点延时都没有。为什么呢?答案是要在定义int的时候加上限定volatile,即
volatile int i;
原因解释如下:[Quote From Here]
volatile表示变量的内容可能在程序未知的情况下被改变
比如,它对应的内存地址的内容被中断函数,或者其他的进程所改变
这种类型的变量,程序执行的时候不会放到cache当中预取,而是每次用到的时候直接取得
比如,你在c中间写这样的程序
for (int i=0; i<100000;i++);
空循环,什么也不做
这个东西就会被优化调,如果在int前面加入这个标记则不会被优化的,因为i每次的变化不一定++也虚在循环中间被别的程序所改变