﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-所谓技术-随笔分类-MISC</title><link>http://www.cnitblog.com/vsolo/category/6998.html</link><description>－－－－－simple,sometimes naive!</description><language>zh-cn</language><lastBuildDate>Wed, 28 Sep 2011 19:59:34 GMT</lastBuildDate><pubDate>Wed, 28 Sep 2011 19:59:34 GMT</pubDate><ttl>60</ttl><item><title>AT91SAM9261的ROMBoot启动片段</title><link>http://www.cnitblog.com/vsolo/archive/2008/05/20/43983.html</link><dc:creator>vsolo</dc:creator><author>vsolo</author><pubDate>Tue, 20 May 2008 14:24:00 GMT</pubDate><guid>http://www.cnitblog.com/vsolo/archive/2008/05/20/43983.html</guid><wfw:comment>http://www.cnitblog.com/vsolo/comments/43983.html</wfw:comment><comments>http://www.cnitblog.com/vsolo/archive/2008/05/20/43983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/vsolo/comments/commentRss/43983.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/vsolo/services/trackbacks/43983.html</trackback:ping><description><![CDATA[<p>AT91SAM9261中内部ROM有32K，可惜启动代码只用了不到8K的空间，目前看来还是有浪费之嫌的（想想当年51就寒碜）<br>上电启动代码的反汇编，只走了第一个S文件：</p>
<p>ROM:00400000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AREA ROM, CODE, READWRITE, ALIGN=0<br>ROM:00400000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; ORG 0x400000<br>ROM:00400000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CODE32<br>ROM:00400000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loc_400020&nbsp;&nbsp;&nbsp;&nbsp;//Reset<br>ROM:00400000 ; --------------------------------------------------------------------------------<br>ROM:00400004&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFE ;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;//Other Exception vectors<br>ROM:00400005&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:00400006&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:00400007&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xEA ; <br>ROM:00400008&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0x2F ; <br>ROM:00400009&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB&nbsp;&nbsp;&nbsp; 0<br>ROM:0040000A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB&nbsp;&nbsp;&nbsp; 0<br>ROM:0040000B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xEA ; <br>ROM:0040000C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFE ; <br>ROM:0040000D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:0040000E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:0040000F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xEA ; <br>ROM:00400010&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFE ; <br>ROM:00400011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:00400012&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:00400013&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xEA ; <br>ROM:00400014&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFE ; <br>ROM:00400015&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:00400016&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:00400017&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xEA ; <br>ROM:00400018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFE ; <br>ROM:00400019&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:0040001A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:0040001B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xEA ; <br>ROM:0040001C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFE ; <br>ROM:0040001D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:0040001E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xFF<br>ROM:0040001F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0xEA ; <br>ROM:00400020 ; --------------------------------------------------------------------------------<br>ROM:00400020<br>ROM:00400020 loc_400020&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>ROM:00400020&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV&nbsp;&nbsp;&nbsp;&nbsp; SP, #0x328000&nbsp;&nbsp;&nbsp;//stack setup<br>ROM:00400024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LDR&nbsp;&nbsp;&nbsp;&nbsp; R1, =0xFFFFFC00&nbsp;&nbsp;&nbsp;//即LDR&nbsp; R1, =AT91C_PMC_SCER ；(PMC) System Clock Enable Register<br>ROM:00400028&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LDR&nbsp;&nbsp;&nbsp;&nbsp; R0, =0x4001<br>ROM:0040002C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STR&nbsp;&nbsp;&nbsp;&nbsp; R0, [R1,#0x20]&nbsp;&nbsp;&nbsp;//即STR&nbsp; R0, [R1,#MOR] ；(PMC) Main Oscillator Register<br>ROM:00400030&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV&nbsp;&nbsp;&nbsp;&nbsp; R4, #1<br>ROM:00400034<br>ROM:00400034 loc_400034&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>ROM:00400034&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LDR&nbsp;&nbsp;&nbsp;&nbsp; R3, [R1,#0x68]&nbsp;&nbsp;&nbsp;//即LDR&nbsp;&nbsp; R3, [R1,#SR] ；(PMC) Status Register<br>ROM:00400038&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND&nbsp;&nbsp;&nbsp;&nbsp; R3, R4, R3<br>ROM:0040003C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMP&nbsp;&nbsp;&nbsp;&nbsp; R3, #1<br>ROM:00400040&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BNE&nbsp;&nbsp;&nbsp;&nbsp; loc_400034&nbsp;&nbsp;&nbsp;&nbsp;//等待主时钟振荡器稳定<br>ROM:00400044&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV&nbsp;&nbsp;&nbsp;&nbsp; R0, #1<br>ROM:00400048&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STR&nbsp;&nbsp;&nbsp;&nbsp; R0, [R1,#0x30]&nbsp;&nbsp;&nbsp;//即STR&nbsp;&nbsp; R0, [R1,#MCKR] ；(PMC) Master Clock Register<br>ROM:0040004C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV&nbsp;&nbsp;&nbsp;&nbsp; R4, #8<br>ROM:00400050<br>ROM:00400050 loc_400050&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>ROM:00400050&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LDR&nbsp;&nbsp;&nbsp;&nbsp; R3, [R1,#0x68]&nbsp;&nbsp;&nbsp;//读取PMC状态<br>ROM:00400054&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AND&nbsp;&nbsp;&nbsp;&nbsp; R3, R4, R3<br>ROM:00400058&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMP&nbsp;&nbsp;&nbsp;&nbsp; R3, #8<br>ROM:0040005C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BNE&nbsp;&nbsp;&nbsp;&nbsp; loc_400050<br>ROM:00400060&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADR&nbsp;&nbsp;&nbsp;&nbsp; R2, off_400094&nbsp;&nbsp;&nbsp;//等待芯片时钟稳定<br>ROM:00400064&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LDMIA&nbsp;&nbsp; R2, {R0,R1,R3,R4}<br>ROM:00400068&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMP&nbsp;&nbsp;&nbsp;&nbsp; R0, R1<br>ROM:0040006C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BEQ&nbsp;&nbsp;&nbsp;&nbsp; loc_400080<br>ROM:00400070<br>ROM:00400070 loc_400070&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>ROM:00400070&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMP&nbsp;&nbsp;&nbsp;&nbsp; R1, R3&nbsp;&nbsp;&nbsp;&nbsp;//copy RW section to IRAM<br>ROM:00400074&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LDRCC&nbsp;&nbsp; R2, [R0],#4<br>ROM:00400078&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STRCC&nbsp;&nbsp; R2, [R1],#4<br>ROM:0040007C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BCC&nbsp;&nbsp;&nbsp;&nbsp; loc_400070<br>ROM:00400080<br>ROM:00400080 loc_400080&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>ROM:00400080&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV&nbsp;&nbsp;&nbsp;&nbsp; R2, #0<br>ROM:00400084<br>ROM:00400084 loc_400084&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>ROM:00400084&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMP&nbsp;&nbsp;&nbsp;&nbsp; R3, R4&nbsp;&nbsp;&nbsp;&nbsp;//copy ZI section to IRAM and Zero init<br>ROM:00400088&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STRCC&nbsp;&nbsp; R2, [R3],#4<br>ROM:0040008C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BCC&nbsp;&nbsp;&nbsp;&nbsp; loc_400084<br>ROM:00400090&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loc_4000A4<br>ROM:00400090 ; --------------------------------------------------------------------------------<br>ROM:00400094 off_400094&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCD 0x401E9C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//|Image$$RO$$Limit| <br>ROM:00400098&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//|Image$$RW$$Base|<br>ROM:00400099&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0x70 ; p&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>ROM:0040009A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0x32 ; 2<br>ROM:0040009B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>ROM:0040009C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0x10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//|Image$$ZI$$Base|<br>ROM:0040009D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0x70 ; p<br>ROM:0040009E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0x32 ; 2<br>ROM:0040009F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>ROM:004000A0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0x88 ; ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//|Image$$ZI$$Limit|<br>ROM:004000A1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0x70 ; p<br>ROM:004000A2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB 0x32 ; 2<br>ROM:004000A3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCB&nbsp;&nbsp;&nbsp; 0<br>ROM:004000A4 ; --------------------------------------------------------------------------------<br>ROM:004000A4<br>ROM:004000A4 loc_4000A4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>ROM:004000A4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LDR&nbsp;&nbsp;&nbsp;&nbsp; R0, =sub_401690<br>ROM:004000A8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV&nbsp;&nbsp;&nbsp;&nbsp; LR, PC<br>ROM:004000AC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R0<br>ROM:004000B0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LDR&nbsp;&nbsp;&nbsp;&nbsp; R0, =sub_40066C<br>ROM:004000B4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV&nbsp;&nbsp;&nbsp;&nbsp; LR, PC<br>ROM:004000B8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R0<br>ROM:004000BC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRC&nbsp;&nbsp;&nbsp;&nbsp; p15, 0, R5,c1,c0<br>ROM:004000C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV&nbsp;&nbsp;&nbsp;&nbsp; R6, #0x1000<br>ROM:004000C4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ORR&nbsp;&nbsp;&nbsp;&nbsp; R5, R5, R6<br>ROM:004000C8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MCR&nbsp;&nbsp;&nbsp;&nbsp; p15, 0, R5,c1,c0<br>ROM:004000CC<br>ROM:004000CC loc_4000CC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>ROM:004000CC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LDR&nbsp;&nbsp;&nbsp;&nbsp; R0, =sub_401338<br>ROM:004000D0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV&nbsp;&nbsp;&nbsp;&nbsp; LR, PC<br>ROM:004000D4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Jump to main Function<br>ROM:004000D8<br>ROM:004000D8 loc_4000D8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>ROM:004000D8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; loc_4000D8&nbsp;&nbsp;&nbsp;&nbsp;//Normally, never occur.<br></p>
<img src ="http://www.cnitblog.com/vsolo/aggbug/43983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/vsolo/" target="_blank">vsolo</a> 2008-05-20 22:24 <a href="http://www.cnitblog.com/vsolo/archive/2008/05/20/43983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>U-boot如何知道kernel的入口地址</title><link>http://www.cnitblog.com/vsolo/archive/2008/04/02/41805.html</link><dc:creator>vsolo</dc:creator><author>vsolo</author><pubDate>Wed, 02 Apr 2008 02:06:00 GMT</pubDate><guid>http://www.cnitblog.com/vsolo/archive/2008/04/02/41805.html</guid><wfw:comment>http://www.cnitblog.com/vsolo/comments/41805.html</wfw:comment><comments>http://www.cnitblog.com/vsolo/archive/2008/04/02/41805.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/vsolo/comments/commentRss/41805.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/vsolo/services/trackbacks/41805.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 事实上，如果CONFIG_BOOTCOMMAND在配置文件./include/configs/<boardname>.h中没有给bootcmd赋值，那么U-boot就不知道kernel的入口地址，U－boot启动后将会等待命令。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 具体实现过程：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uboot：Start.s -&gt; start_armboot ()&lt;./lib_arm/board.c&gt;&nbsp; -&gt;&nbsp; main_loop ()&lt;./common/main.c&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; main_loop()会调用abortboot (bootdelay)判断在delay time内有没有键按下，并给出prompt&#8220;Hit any key to stop autoboot&#8221;，若没有键按下则run_command (s, 0)(s为默认的bootcmd)。这里默认的bootcmd需要根据内核的位置设置，若bootcmd未赋值，Uboot就会一直等待。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 若此时内核已在RAM中，bootm &lt;add&gt;就可以启动内核了；若内核从(nor)Flash启动，则首先要将内核从Flash中拷贝到RAM：setenv bootcmd cp.b &lt;source add in Flash&gt; &lt;target add in RAM&gt; &lt;count&gt;\;bootm &lt;target add&gt;；当然也可以设置从其它(如tftp)启动&#183;&#183;&#183;&#183;&#183;</p>
<img src ="http://www.cnitblog.com/vsolo/aggbug/41805.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/vsolo/" target="_blank">vsolo</a> 2008-04-02 10:06 <a href="http://www.cnitblog.com/vsolo/archive/2008/04/02/41805.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Uboot启动Uboot</title><link>http://www.cnitblog.com/vsolo/archive/2008/03/30/41693.html</link><dc:creator>vsolo</dc:creator><author>vsolo</author><pubDate>Sun, 30 Mar 2008 12:48:00 GMT</pubDate><guid>http://www.cnitblog.com/vsolo/archive/2008/03/30/41693.html</guid><wfw:comment>http://www.cnitblog.com/vsolo/comments/41693.html</wfw:comment><comments>http://www.cnitblog.com/vsolo/archive/2008/03/30/41693.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/vsolo/comments/commentRss/41693.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/vsolo/services/trackbacks/41693.html</trackback:ping><description><![CDATA[<p>通过开发板上的u-boot测试自己的u-boot.bin的方法：<br><br>最简单的只需修改两处即可：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;1&gt;将自己的u-boot的./board/&lt;board name&gt;/config.mk中TEXT_BASE修改到一个合适的未被分配的RAM地址，因为板上的u-boot自己启动时会将自己复制到RAM中TEXT_BASE开始的一段空间，则新的u-boot复制自己所占的RAM空间不能与之有重合。（注意：u-boot在TEXT_BASE的下方还会开辟一段栈空间以作运行之用，且kernel的在RAM中地址一般也事先确定，新的TEXT_BASE也不应与之重合）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;2&gt;将start.S中的初始化RAM控制寄存器的代码注释掉（因为板上的u-boot启动时已经初始化了）。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后编译,将得到uboot.bin的loadb&nbsp; &lt;ramadd&gt;，go &lt;ramadd&gt;，此时新的uboot就驻在RAM中新的TEXT_BASE开始的空间了，go &lt;TEXT_BASE&gt;，呵呵&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;&#183;</p>
<img src ="http://www.cnitblog.com/vsolo/aggbug/41693.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/vsolo/" target="_blank">vsolo</a> 2008-03-30 20:48 <a href="http://www.cnitblog.com/vsolo/archive/2008/03/30/41693.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何打开设备fb0</title><link>http://www.cnitblog.com/vsolo/archive/2008/03/19/41192.html</link><dc:creator>vsolo</dc:creator><author>vsolo</author><pubDate>Wed, 19 Mar 2008 13:42:00 GMT</pubDate><guid>http://www.cnitblog.com/vsolo/archive/2008/03/19/41192.html</guid><wfw:comment>http://www.cnitblog.com/vsolo/comments/41192.html</wfw:comment><comments>http://www.cnitblog.com/vsolo/archive/2008/03/19/41192.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/vsolo/comments/commentRss/41192.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/vsolo/services/trackbacks/41192.html</trackback:ping><description><![CDATA[<p>cat : /dev/fb0&nbsp;: no such device<br>ls&nbsp;&nbsp;&nbsp; /dev /fb0&nbsp;&nbsp; 存在<br>cat&nbsp; /proc/fb&nbsp;&nbsp;&nbsp; 存在</p>
<p>在安装了Redhat 9.0时，如果显卡驱动选择默认的通用驱动vesa 会出现上述情况<br>解决办法：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; vi&nbsp; /boot/grub/grub.conf<br>&nbsp;&nbsp;&nbsp;&nbsp; kernel *****&nbsp;&nbsp;&nbsp;&nbsp; 后面加上vga＝&#215;&#215;&#215;</p>
<p>&nbsp;&nbsp;&nbsp; vga值可选：<br>&nbsp;&nbsp;&nbsp; | 640x480&nbsp; 800x600&nbsp; 1024x768 1280x1024<br>----+-------------------------------------<br>256 |&nbsp; 0x301&nbsp;&nbsp;&nbsp; 0x303&nbsp;&nbsp;&nbsp; 0x305&nbsp;&nbsp;&nbsp; 0x307&nbsp;&nbsp; <br>32k |&nbsp; 0x310&nbsp;&nbsp;&nbsp; 0x313&nbsp;&nbsp;&nbsp; 0x316&nbsp;&nbsp;&nbsp; 0x319&nbsp;&nbsp; <br>64k |&nbsp; 0x311&nbsp;&nbsp;&nbsp; 0x314&nbsp;&nbsp;&nbsp; 0x317&nbsp;&nbsp;&nbsp; 0x31A&nbsp;&nbsp; <br>16M |&nbsp; 0x312&nbsp;&nbsp;&nbsp; 0x315&nbsp;&nbsp;&nbsp; 0x318&nbsp;&nbsp;&nbsp; 0x31B&nbsp;&nbsp;&nbsp; <br><br>重启就可以看到企鹅了</p>
<p>有人说可设置vga＝ask，reboot,Press &lt;RETURN&gt; (就是回车)<br>试过了仍然无解，至少在Grub中不行</p>
<p>LILO不知情况如何,据说可以：&lt;documentation\fb\vesafb.txt&gt;</p>
<p>To enable one of those modes you have to specify "vga=ask" in the<br>lilo.conf file and rerun LILO. Then you can type in the desired<br>mode at the "vga=ask" prompt. For example if you like to use <br>1024x768x256 colors you have to say "305" at this prompt.</p>
<img src ="http://www.cnitblog.com/vsolo/aggbug/41192.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/vsolo/" target="_blank">vsolo</a> 2008-03-19 21:42 <a href="http://www.cnitblog.com/vsolo/archive/2008/03/19/41192.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>