Linux下Cold Fire 片內(nèi)SRAM的應(yīng)用程序優(yōu)化設(shè)計(jì)
為了在修改內(nèi)核代碼的同時(shí)不影響系統(tǒng)其他文件的正常運(yùn)行,要在內(nèi)核鏈接腳本中添加新的段區(qū)定義(.sramcode),指定該段區(qū)鏈接加載地址為處理器片內(nèi)SRAM,并在.sramcode段區(qū)內(nèi)定義代碼段(.sramtext)和數(shù)據(jù)段(.sramdata),分別用于存儲(chǔ)驅(qū)動(dòng)中的代碼和數(shù)據(jù)。對(duì)齊方式采用ALIGN(4),因?yàn)閷?duì)32位微處理器來說,該對(duì)齊方式將有效減少處理器執(zhí)行周期,提高執(zhí)行效率。然后,使用2個(gè)指針_lsramcode和_lsramcodeend分別指向,sramcode段區(qū)的段首和段尾,具體實(shí)現(xiàn)如下:本文引用地址:http://www.butianyuan.cn/article/166834.htm
完成對(duì)操作系統(tǒng)鏈接文件的修改之后,使用宏定義在音頻驅(qū)動(dòng)程序中把相關(guān)函數(shù)和數(shù)據(jù)分別指定鏈接到,sramcode代碼段和數(shù)據(jù)段,并由copy函數(shù)把相關(guān)函數(shù)復(fù)制到SRAM中執(zhí)行。編譯、鏈接完成后,可以在系統(tǒng)內(nèi)核存儲(chǔ)映射文件Sys-tem.map中查看驅(qū)動(dòng)函數(shù)和數(shù)據(jù)在內(nèi)存中的地址。圖3顯示了音頻驅(qū)動(dòng)函數(shù)在處理器片內(nèi)SRAM中的映射地址。
評(píng)論