1.2011年8月1日--------拿到ARM开发板.
a.屏幕不亮
taobao店主让我重插一下。果然好使。
b.换铜柱
原来的塑料柱真的很难拔下来,换了铜柱就好多了。
2.2011年8月2日--------烧测试程序
a.环境
TQ2440, Window7.
b.JLink
JLink用于烧U-boot。 如果原来的Boot被损坏了, SecureCRT&DNW是搞不定的!记住!
连接: JTag插口接到JLink; JLink通过USB线连电脑。
c.SecureCRT & DNW
d.问题和经验
如果DNW无法运行,可删除c:\dnw.ini。
如果先点DNW的Transmit, 可能无法完成烧写。 而且如果在未退出SecureCRT & DNW前,拔掉USB线,可能会蓝屏,Windows重启。
3.2011年8月6日--------看<Linux0.11内核解释>
看到 49页第三章Boot:"当 PC 的电源打开后,80x86 结构的 CPU 将自动进入实模式,并从地址 0xFFFF0 开始自动执行程序代码,这个地址通常是 ROM-BIOS 中的 地址。"
不懂!
1.刚上电内存是空的,如何执行?
2.如何有内容,是谁是什么时候Copy到内存上的?
在网上找到一些资料:
1.映射/编址说: 0xF0000~0xFFFFF被映射到Bios ROM
2.南北桥说:取指时由CPU->北桥->南桥->Bios ROM
3.Bios自解压加载到RAM
4.2011年8月7日--------烧Linux和WinCE
按<TQ2440开发板使用手册V2.5_20100611.pdf>步骤把Linux和WinCE烧了一遍,都可运行。有小小成就感! 注意资料上把如何处理坏块的步骤也放在一起,很容易就搞错,所以先别在那些步骤。建议EmbedSkey把“如何处理坏块的步骤”的内容放到正常步骤之后,或附录中。
5.2011年8月9日--------调试
今天用JLink连接,可用AXD调试TQ2440_Test.bin了,爽!一步一步走还是可以看到成绩的。积跬步,可至千里矣。但很多Debug命令不会用,还需要不断学习。
6.2011年8月12日------学习ARM汇编
看了很多工程都有Init.s,对于AREA, EQU等还是有点陌生,还是从汇编学起吧。http://www.peter-cockerell.net/aalp/html/frames.html
7.2011年8月14日-----学习uC/OS
看汇编有点头晕,指令太多。如果不实践,真的记不住。况且看的资料是与BASIC相嵌(上面那个),因为没用过BASIC,还是有些功能不理解,比如%P。
在网上逛了逛,发现uC/OS不错。因为它开源,可以编译后在ARM上运行,另外主要是它展示了操作系统的基本功能,所以学习它可以一举多得。
8.2011年8月19日-----调试简单的程序
这几天把ucos看了前半部分,后而开始讲移植了,所以也想把天嵌附带的ucos运行,调试一下。但是,一调试AXD就弹出"Software interrupt (SWI) 0xFFFFFF occured in ARM mode @ address 0x2F5C0000 ",在网上找到了解决办法:在AXD的Options--Configure target--Configure--CPU中,将Delay after reset 由默认0改为1000。
不过,很多汇编不懂,比如中括号[ ]
[ {FALSE}
;rGPFDAT = (rGPFDAT & ~(0xf<<4)) | ((~data & 0xf)<<4); A M H
; Led_Display
ldr r0,=GPBCON
ldr r1,=0x155500
str r1,[r0]
ldr r0,=GPBDAT
ldr r1,=0x0
str r1,[r0]]
抓紧学习哟!
查到了. “[”相当于IF; “]”相当于ENDIF; “|”相当于ELSE。 今天,看到“^”不知道什么意思! (^ _ISR_STARTADDRESS ; _ISR_STARTADDRESS=0x33FF_FF00)
找到,待确认:
MAP
指令将存储映射的原点设置为指定的地址。 存储映射位置计数器{VAR}
也设置为同一地址。^
是MAP
的同义词。
9. 2011年8月21日----调试uC/OS
今天调试天嵌开发资料带的uC/OS-II,把LCD_TYPE 定义成W43 就不容易死机了。
今天还看时钟,一并看了一下异常和中断,以及异常向量和中断向量,基本理解了。明天另写一文阐述自己的理解。
10.2011年8月23----软中断(SWI)
什么是软件中断?它有什么用处? 为了切换模式? 比如从用户(user)模式到管理(Supervisor)模式的切换,只能在中断程序(服务子程序)中才能调用相应的指令。
11.2011/8/24----Linux 0.11
今天回家晚, 在公司看Linux0.11解释 (潘晓雷). 前面的boot部分不能全部理解, 以后再来复习. 看到第四章<进程的描述>, 感觉与uC/OS类似哦.