返回頂部
關(guān)閉軟件導(dǎo)航
位置:首頁 > 資訊 > 其他>2Bootloader引導(dǎo)程序的設(shè)計

  在工程代碼編寫之前要求對硬件器件有所了解,主要需要了解FPGA所需要的配置文件空間,還有Flash存儲結(jié)構(gòu)。例如:XC3S500E配置文件空間為2270208位,所以要根據(jù)它計算存儲應(yīng)用程序的基地址。AT45DB161D是串行接口的閃存芯片,它包含有17301504位,被組織為4096頁,每頁512/528字節(jié)。除了主存儲器,AT45DB161D還包括2個SRAM數(shù)據(jù)緩沖區(qū),每個緩沖區(qū)512/528字節(jié)。在主存儲器正在編程時,緩沖區(qū)是允許接收數(shù)據(jù)的,并且支持數(shù)據(jù)流式寫入。(此處為528字節(jié)/頁)

  AT45DB161D的存儲器陣列分為3個級別的粒度,分別為扇區(qū)、塊與頁用flash實現(xiàn)鏈接跳轉(zhuǎn)。圖4對各個級別進行了分析,詳細說明了每個扇區(qū)與塊的頁數(shù)。所有的編程操作都是針對頁的。擦除操作可以作用于芯片、扇區(qū)、塊或頁。

  最后利用定義的空函數(shù)int(*boot_app_jump)(void);”將地址指針指向內(nèi)存的應(yīng)用程序基地址,使其從此處開始運行程序。

 ?。瘜⒛康牡刂焚x給跳轉(zhuǎn)函數(shù)

  boot_app_jump=(int(*)(void))DESTINATION_AD-DR;

  //運行跳轉(zhuǎn)函數(shù),使其在該函數(shù)地址開始運行程序boot_app_jump();

  3SPIFlash軟件引導(dǎo)過程及SPIFlash編程

  本實驗使用簡單的應(yīng)用程序(打印hello_world),即工程“hello_world”flash跳轉(zhuǎn)軟件 。工程serial_Flash_bootloader就是上面設(shè)計的引導(dǎo)程序。

  3.1編譯用戶應(yīng)用程序的二進制文件

  由于應(yīng)用程序要在外部SDRAM中運行,所以不需要初始化BRAM存儲器,如圖5所示。

  為了指明程序的開始地址和應(yīng)用程序的可執(zhí)行文件的產(chǎn)生路徑,需要在編譯選項中設(shè)置。右鍵“應(yīng)用程序工程”用flash實現(xiàn)鏈接跳轉(zhuǎn),SetCompilerOptions在OutputELFfile中選擇可執(zhí)行文件的產(chǎn)生路徑,如XC3S500E\hello_world\hello_world.elfFLASH跳轉(zhuǎn)生成器 ,在ProgramStartAddress中鍵入程序執(zhí)行的起始地址(這里是SDRAM的基地址:0x90000000)。接下來編譯應(yīng)用程序工程,編譯完成后就會在XC3S500E\hello_world文件夾中產(chǎn)生hello_world.elf。為了后面對SPIFlash編程的需要,應(yīng)將elf轉(zhuǎn)變成二進制形式的文件。這就需要利用cygwinshell窗口命令來完成,這個腳本提供了一個簡單的命令實現(xiàn)這個目的。利用mb-objcopy-Obinaryoptions>ELFfileinput>bi-naryfiletooutput>命令就可以將elf轉(zhuǎn)變成二進制形式的文件(.b文件)。

  ELFfileinput>bi-naryfiletooutput>命令就可以將elf轉(zhuǎn)變成二進制形式的文件(.b文件)。

  bi-naryfiletooutput>命令就可以將elf轉(zhuǎn)變成二進制形式的文件(.b文件)。

  命令就可以將elf轉(zhuǎn)變成二進制形式的文件(.b文件)。

  例如:mb-objcopy-Obinary./helloworld/helloworld.elf./hello_world/hello_world.b用來在工程目錄下hello_world文件夾創(chuàng)建工程的一個hello_world.b的二進制文件。生成的文件hello_world.b大約2KB左右用flash實現(xiàn)鏈接跳轉(zhuǎn) 。

  3.2Bootloader引導(dǎo)程序與硬件配置文件的生成

  serial_Flash_bootloader要初始化到BRAM中(即在“工程”上右鍵→BRAMInitializationandunmarka11)。

  這樣做的意義是在編譯Bootloader程序時就將它編譯后的執(zhí)行文件(.elf文件)加入到硬件system.bit中生成一個download.bit。這個文件既包含了系統(tǒng)硬件配置信息,又包括了Bootloader程序執(zhí)行文件。由于設(shè)置了初始化到BRAM中用flash實現(xiàn)鏈接跳轉(zhuǎn) ,所以在系統(tǒng)上電時才能使Bootloader程序自動加載到片內(nèi)BRAM中運行,實現(xiàn)程序的引導(dǎo)功能。只要利用EDK用軟件中downloadbitstram功能就可以實現(xiàn)上述功能。

如果您覺得 2Bootloader引導(dǎo)程序的設(shè)計 這篇文章對您有用,請分享給您的好友,謝謝
文章地址:http://www.brucezhang.com/article/other/Bootloaderydcxdsj.html
解放雙手無盡可能,有問題添加天線貓微信
主站蜘蛛池模板: 国产成人无码AⅤ片在线观看| 18岁日韩内射颜射午夜久久成人| 成人午夜精品无码区久久| 中文国产成人精品久久一区 | 亚洲成人一级片| 国产成人久久精品二区三区| 午夜电影成人福利| 青青草成人免费| 成人啪精品视频免费网站| 国产成人午夜福利在线播放| 久久精品国产成人AV| 成人精品视频99在线观看免费 | 亚洲成人免费网站| 成人午夜精品视频在线观看| 国产成人亚洲精品蜜芽影院| 中文国产成人精品久久久| 国产精品成人无码久久久久久| 亚洲国产成人一区二区精品区| 精品无码成人久久久久久| 国产成人手机高清在线观看网站| 2021国产成人精品国产| 国产成人免费高清在线观看| 中文字幕在线成人免费看| 嫩草成人永久免费观看| 欧美日韩国产成人在线观看| 国产成人免费午夜在线观看| 成人欧美一区二区三区黑人3p| 久久久久亚洲AV成人无码网站| 国产成人精品综合久久久久| 成人毛片免费观看视频| www成人在线观看| 国产成人免费福利网站| 国产精品成人免费福利| 精品久久久久成人码免费动漫| 亚洲欧洲精品成人久久曰影片| 成人免费观看高清在线毛片| 欧美成人国产精品高潮| A级毛片成人网站免费看| a级成人毛片完整版| 全球中文成人在线| 亚洲av成人一区二区三区 |