嵌入式学习历程
来源:互联网 发布:js与ajax 编辑:程序博客网 时间:2024/05/22 13:20
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类似哦.
- 嵌入式学习历程
- 嵌入式学习历程
- 嵌入式学习历程
- 学习嵌入式软件的历程
- 嵌入式学习历程一点儿体会
- 【嵌入式学习历程6】 指针(1)
- 【嵌入式学习历程9】数据结构之栈
- 【嵌入式学习历程10】数据结构之队列
- 【嵌入式学习历程12】Linux文件编程
- 【嵌入式学习历程15】多线程编程
- 嵌入式学习历程【1】 嵌入式系统的基础知识
- 今天开始记录我的嵌入式学习历程
- 嵌入式学习历程【2】 Linux的基本命令
- 嵌入式学习历程【3】 Linux的shell编程
- 【嵌入式学习历程4】C语言之开篇基础
- 【嵌入式学习历程5】 数组与函数(1)
- 【嵌入式学习历程7】 数据结构之线性表
- 【嵌入式学习历程8】数据结构之链表
- 什么是java的path和classpath?
- Linux下TFTP SERVER配置
- sap学习资料
- !?Linux 安装oracle
- win32汇编基础学习一
- 嵌入式学习历程
- mj评《变形金刚3>>-8分
- java.lang.OutOfMemoryError: Java heap space
- 伪随机数(baike.baidu.com)字符串生成程序已修改,红体字程序为本人改写,编译正常
- [Oracle] 建库语句
- spring3.0包介绍
- onMeasure和onLayout
- flup、WSGI及Django
- 第一次做项目,没经验