VxWorks從Flash BOOT的實現(xiàn)方法
stwr5,OR1(0)(r4)
2、地址映射
在sysLib.c文件中有一sysPhysMemDesc的地址映射數(shù)組的聲明,對BOOTFlash和Flash的地址按照如下的地址映射后,VxWorks系統(tǒng)才會讓你對此地址進行相應(yīng)的讀寫操作。
{
(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、文件燒錄
還存在一個問題,因為BOOTFlash是可以在燒錄器上燒錄的,而Flash芯片是直接焊接在MPC860的主板上,只能通過相應(yīng)的Flash驅(qū)動才能進行讀寫的,是不可能通過燒錄器燒錄,要解決此問題那只能按照如下辦法解決。
在主板上要保留有BootRomFlash座,要有一片從BOOTFlash引導(dǎo)的BOOTFlash芯片,此芯片中要有已經(jīng)燒錄好的可以正常運行的 BootRom程序,先將此芯片加到BootRomFlash座上,加電將系統(tǒng)引導(dǎo)起來,然后用事先寫好的將BootRom及VxWorks寫入 Flash的函數(shù)將BootRom及VxWorks文件寫入Flash相應(yīng)的地址段,注意寫入地址要正確,即BootRom的第一條指令必須寫在 0xFFF00100地址,關(guān)電后將BOOTFlash從座中取出來,加電后系統(tǒng)就從Flash中引導(dǎo)起來了。
評論