VxWorks從Flash BOOT的實(shí)現(xiàn)方法
stwr5,OR1(0)(r4)
2、地址映射
在sysLib.c文件中有一sysPhysMemDesc的地址映射數(shù)組的聲明,對(duì)BOOTFlash和Flash的地址按照如下的地址映射后,VxWorks系統(tǒng)才會(huì)讓你對(duì)此地址進(jìn)行相應(yīng)的讀寫(xiě)操作。
{
(void*)0x04000000,
(void*)0x04000000,
0x00800000,/*8m-Flashwindow1*/
VM_STATE_MASK_VALID|VM_STATE_MASK_WRITABLE,
VM_STATE_VALID|VM_STATE_WRITABLE
},
{
(void*)ROM_BASE_ADRS,
(void*)ROM_BASE_ADRS,
ROM_SIZE,/*Flashmemory*/
VM_STATE_MASK_VALID|VM_STATE_MASK_WRITABLE|
VM_STATE_MASK_CACHEABLE,
VM_STATE_VALID|VM_STATE_WRITABLE|
VM_STATE_CACHEABLE_NOT
}
3、文件燒錄
還存在一個(gè)問(wèn)題,因?yàn)?a class="contentlabel" href="http://cafeforensic.com/news/listbylabel/label/BOOT">BOOTFlash是可以在燒錄器上燒錄的,而Flash芯片是直接焊接在MPC860的主板上,只能通過(guò)相應(yīng)的Flash驅(qū)動(dòng)才能進(jìn)行讀寫(xiě)的,是不可能通過(guò)燒錄器燒錄,要解決此問(wèn)題那只能按照如下辦法解決。
在主板上要保留有BootRomFlash座,要有一片從BOOTFlash引導(dǎo)的BOOTFlash芯片,此芯片中要有已經(jīng)燒錄好的可以正常運(yùn)行的 BootRom程序,先將此芯片加到BootRomFlash座上,加電將系統(tǒng)引導(dǎo)起來(lái),然后用事先寫(xiě)好的將BootRom及VxWorks寫(xiě)入 Flash的函數(shù)將BootRom及VxWorks文件寫(xiě)入Flash相應(yīng)的地址段,注意寫(xiě)入地址要正確,即BootRom的第一條指令必須寫(xiě)在 0xFFF00100地址,關(guān)電后將BOOTFlash從座中取出來(lái),加電后系統(tǒng)就從Flash中引導(dǎo)起來(lái)了。
評(píng)論