久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久
右欄
歡迎您:游客!請先
登錄
或
注冊
風格
恢復默認設置
|
展區
文件集瀏覽
圖片集瀏覽
Flash瀏覽
音樂集瀏覽
電影集瀏覽
|
搜索
|
社區游戲中心
曙海教育集團論壇
→
DSP專區
→
DSP6000系統開發
→ TMS320VC55X系列DSP的FLASH引導方法
新的主題
投票帖
交易帖
小字報
下一主題 >>
<< 上一主題
共有
8367
人關注過本帖
樹形
打印
主題:TMS320VC55X系列DSP的FLASH引導方法
wangxinxin
小
大
1樓
個性首頁
|
博客
|
信息
|
搜索
|
郵箱
|
主頁
|
UC
加好友
發短信
等級:青蜂俠
帖子:
1393
積分:14038
威望:0
精華:0
注冊:
2010-11-12 11:08:23
TMS320VC55X系列DSP的FLASH引導方法
Post By:2010-11-22 14:36:22
以下內容含腳本,或可能導致頁面不正常的代碼
<font face="Arial"><strong>引言 </strong> 隨著數字信號處理技術的快速發展,DSP被廣泛的應用到各種數字信號處理系統中。最終開發的系統要想脫離<a class="aBlue" href="http://shop.icbuy.com/product/list/36.html" target="_blank"><font class="f14">仿真器</font></a>運行,必須將程序代碼存儲在非易失性<a class="aBlue" href="http://shop.icbuy.com/product/list/49.html" target="_blank"><font class="f14">存儲器</font></a>中。FLASH<a class="aBlue" href="http://shop.icbuy.com/product/list/49.html" target="_blank"><font class="f14">存儲器</font></a>以其大容量和可在線編程等特點已成為DSP系統的一個基本配置。如何將程序燒寫進FLASH,并在上電時加載進DSP內部的RAM是FLASH在DSP系統中應用的兩個基本技術問題。本文以基于TI公司的TMS320VC5509A和ATMEL公司的AT49LV1024 FLASH開發的系統為背景,介紹該系統引導相關的硬件設計,燒寫軟件設計以及自舉引導、二次引導等實現方法。</font> <table align="left" border="0"> <tbody> <tr> <td valign="top" align="left" width="310" height="260"><!--文章頁大屏幕廣告--> <iframe style="BORDER-RIGHT: #e6e6e6 0px="0px" solid; BORDER-TOP: #e6e6e6 0px="0px" solid; BORDER-LEFT: #e6e6e6 0px="0px" solid; WIDTH: 300px; BORDER-BOTTOM: #e6e6e6 0px="0px" solid; HEIGHT: 250px; BACKGROUND-COLOR: #ffffff" name="icbuy_ad" marginwidth="0" marginheight="0" src="http://java09.icbuy.com/icbuyas/adPV.html?adlId=146&t=0.36223334325308565" frameborder="0" scrolling="no"></iframe></td></tr></tbody></table> <font face="Arial"><strong>TMS320VC5509A的自舉引導 </strong> TMS320VC5509A每次上電復位后,在執行完一系列初始化(配置堆棧寄存器、關閉中斷、程序臨時入口、符號擴展、兼容性配置)工作后,根據事先配置的自舉模式,通過固化在ROM內的BOOTLOADER程序進行程序引導。VC5509A的引導模式選擇是通過四個模式選擇引腳BOOTM[0:3]的配置來完成的。在本系統中,采用EMIF(外部存儲接口)并行引導模式(16位數據寬度),則需將BOOTM[3:0]設置成1011即可。 通過EMIF接口可以靈活地和各種同步或異步<a class="aBlue" href="http://shop.icbuy.com/product/list/49.html" target="_blank"><font class="f14">存儲器</font></a>件無縫連接。通過EMIF可以擴展VC5509A的存儲空間到128Mbit(SDRAM),存儲空間共被分為CE0~CE3。在EMIF的并行引導模式中,ROM中固化的Bootloader程序是以字地址0x200000為首地址開始加載程序。地址0x200000即位CE1空間的首地址,所以FLASH必須接在DSP的CE1空間上。在加載時,EMIF的CE1空間已經默認配置成異步靜態隨機<a class="aBlue" href="http://shop.icbuy.com/product/list/49.html" target="_blank"><font class="f14">存儲器</font></a>(SRAM)接口,并且在時序上采用了最差情況設置(即最慢訪問速度),充分保證了時間裕量,使得程序代碼被順利的加載到DSP的內存中。 Bootloader在引導程序時,程序代碼是以引導表格式加載的。TMS320VC55x的引導表結構中包括了用戶程序的代碼段和數據段以及相應段在內存中的指定存儲位置,此外還包括了程序入口地址、部分寄存器的配置值、可編程延時時間等信息(見表1)。 其中,程序入口地址是引導表加載結束后,用戶程序開始執行的地址;寄存器配置數目決定了后面有多少個寄存器需要配置;只有當延時標志為0xFFFF時,延時才被執行;延時長度決定了在寄存器配置后延時多少個CPU周期后才進行下一個動作;段長度、段起始地址和數據則為用戶程序中定義的各個段的內容,并且可以重復添加;最后以0x00000000(32個0)作為引導表的結束標志。 要生成引導表,可以將CCS最終編譯生 成的.out文件通過CCS自帶的hex55.exe轉換程序得到。將hex55.exe、.out文件、cmd文件放在同一個文件夾中,通過dos命令格式調用hex55.exe,即可完成.out文件到hex格式的引導表文件的轉化。CMD文件用來提供引導表的相關配置信息,以下為一個CMD文件的實例: FlashBootTest.out; 輸入的.out文件 -boot; 說明創建boot文件 -v5510:2; 生成55X boot文件格式 -parallel16; 使用串行加載方式 -a; ASCII格式 -reg_config 0x1c00,0x6cd2; 在地址0x1c00 的寄存器寫入0x6cd2,配置CPU時鐘 -delay 0x100; 延時0x100 個CPU 時鐘周期 -o FlashBootTest.hex; 輸出.hex文件 </font><font face="Arial"><strong>FLASH的燒寫和自舉的實現 TMS320VC5509A和AT49LV1024的硬件設計 </strong> AT49LV1024是ATMEL公司3V供電系統的FLASH芯片,16位位寬,容量為64K字。VC5509A(PGE封裝)只有14條地址線,只能尋址16K字的SRAM空間。要想尋址64K字地址空間的話,FLASH地址線的高兩位則需要通過其他IO線控制。在本系統中通過GPIO4和GPIO6與FLASH的高兩位地址相連達到此目的,其連接示意圖如圖1所示。但是在Bootloader自舉引導程序的時候,并不能控制GPIO引腳,也就是只能引導最大16K字的程序。對于大于16K字的程序,則需要進行二次引導。</font> <font face="Arial"><img src="http://www.icbuy.com/upload/info/news/content/20070803/0202493001186105643.jpg" border="0" twffan="done"/></font> <font face="Arial">圖1 VC5509A和AT49LV1024的硬件連接示意圖 </font><font face="Arial"><strong>二次引導技術 </strong> 所謂二次引導,通過DSP內部ROM固化的Bootloader引導用戶自己編寫一個引導程序,其功能和ROM內固化的Bootloader相同,再通過此引導程序加載系統最終運行的程序代碼,并在加載結束后,把PC值置為新的程序入口地址。由于在用戶編寫的引導程序中,可以控制GIPO4和GPIO6,所以可達到64K字地址空間的尋址目的。其具體實現框圖如圖2所示。</font> <font face="Arial"><img src="http://www.icbuy.com/upload/info/news/content/20070803/0639783001186105643.jpg" border="0" twffan="done"/></font> <font face="Arial">圖2 TMS320VC 5509A二次引導框圖 </font><font face="Arial"><strong>數據燒寫程序設計 </strong> FLASH的數據可直接讀取,但對FLASH的編程和擦除操作則需要通過一系列命令才能進行。 AT49LV1024的寫操作只能將1變成0,而0變成1操作必須通過擦除操作進行。所以每次寫FLASH之前,必須進行片擦除,使存儲單元值變成0xFFFF,才能進行編程。 擦除命令:需要六個周期,其操作命令如表2所示。 編程命令需要四個周期,其操作命令如表3所示。 編程和擦除操作都需要一定的周期的時間(AT49LV1024的單字編程時間是20ms,整片擦除時間是10s),用戶可以通過查詢標志數據線DQ6和DQ7來確定編程或擦除是否完畢。當片子正處于編程或擦除狀態時,連續讀任意單元的值,DQ6的值將一直處于0、1交替變化,當編程或擦除結束時,讀DQ6則得到一個恒定值。本文即通過此方法來判斷操作是否結束。 根據FLASH的編程和擦除命令,編寫了相應的C語言程序如下,其中SetGPIO46Addr(Addr)子程的作用是根據所傳遞的Addr值配置相應的GPIO4和GPIO6即高兩位地址的值。 ·片擦除程序 #define FLASH_BASE_ADDR=0x200000; //設定FLASH的基地址,CE1的首地址 void ChipErase(void) { SetGPIO46Addr(0x5555); //設定FLASH的 地址值0x5555的GPIO4和GPIO6電平 *(volatile Uint16 *)(FLASH_BASE_ADDR+0x5555) = 0xaa; //向 FLASH的地址0x5555寫入0xaa SetGPIO46HiAddr(0x2aaa); *(volatile Uint16 *)(FLASH_BASE_ADDR+0x2aaa) = 0x55; SetGPIO46HiAddr(0x5555); *(volatile Uint16 *)(FLASH_BASE_ADDR+0x5555) = 0x80; SetGPIO46HiAddr(0x5555); *(volatile Uint16 *)(FLASH_BASE_ADDR+0x5555) = 0xaa; SetGPIO46HiAddr(0x2aaa); *(volatile Uint16 *)(FLASH_BASE_ADDR+0x2aaa) = 0x55; SetGPIO46HiAddr(0x5555); *(volatile Uint16 *)(FLASH_BASE_ADDR+0x5555) = 0x10; WriteOrEraseIsOver(); //等待擦除完畢 } ·單字編程程序 void WriteWord (Uint16 Addr, Uint16 Val) { SetGPIO46HiAddr(0x5555); *(volatile Uint16 *) (FLASH_BASE_ADDR+0x5555) = 0xaa; SetGPIO46HiAddr(0x2aaa); *(volatile Uint16 *) (FLASH_BASE_ADDR+0x2aaa) = 0x55; SetGPIO46HiAddr(0x5555); *(volatile Uint16 *) (FLASH_BASE_ADDR+0x5555) = 0xa0; SetGPIO46HiAddr(Addr); *(volatile Uint16 *) (FLASH_BASE_ADDR+ Addr ) = Val; // 寫進編程數據 WriteOrEraseIsOver(); //等待編程結束 } ·編程和擦除結束確認程序 void WriteOrEraseIsOver(void) { volatile Uint16 LastDQ6,CurrentDQ6; SetGPIO46HiAddr(0x0); LastDQ6= (*(volatile Uint16 *)FLASH_BASE_ADDR)&0x40; //取DQ6的值 CurrentDQ6=(*(volatile Uint16 *)FLASH_BASE_ADDR)&0x40; While(1) //等待兩次連續讀DQ6的相等 { LastDQ6=CurrentDQ6; CurrentDQ6=(*(volatile Uint16*)FLASH_BASE_ADDR)&0x40; if(LastDQ6==CurrentDQ6) break; //當兩次連續讀DQ6的相等時,跳 出循環 } } 本系統采用CCS仿真環境下對FLASH在線編程。先建立一個FLASH的燒寫工程,并在工程中將要燒寫進FLASH引導表文件,通過CCS的LOAD DATA功能直接加載DSP的內存中,根據加載的首地址和數據長度,在仿真環境下燒進FLASH中。值得注意的是,程序加載的內存空間不能和FLASH的燒寫程序重疊,否則將燒寫失敗。 需要補充的是,經HEX55.exe轉化后的hex格式的引導表文件是不能直接導入CCS中的。CCS只支持其特別規定的DAT格式文件通過LOAD DATA導入內存中,所以引導表在導入之前必須先進行轉化。轉化成DAT格式文件這個工作可以通過VC編寫一個簡單的C語言轉化程序來實現。</font> <font face="Arial"><strong>結語 </strong> 本文闡述了一種針對TMS320VC55x系列DSP簡單有效的FLASH燒寫方法,并提出了程序自舉引導的實現方法,包括大程序二次引導的實現方法。本文討論的引導方法包括硬件設計及相關程序已在實際開發CMOS圖像采集項目中使用,并成功運行</font>
說明:
上面顯示的是代碼內容。您可以先檢查過代碼沒問題,或修改之后再運行.
支持
(
0
)
中立
(
0
)
反對
(
0
)
單帖管理
舉報帖子
使用道具
|
引用
|
回復
下一主題 >>
<< 上一主題
返回版面帖子列表
TMS320VC55X系列DSP的FLASH引導方法
回復標題:
上傳附件:
簽名
:
不顯示
顯示
RSS2.0
Xhtml無圖版
Xslt無圖版
Copyright © 2000 - 2009
曙海
教育集團
Powered By
曙海教育集團
Version 2.2
頁面執行時間 0.01563 秒, 3 次數據查詢
主站蜘蛛池模板:
日本亚洲成高清一区二区三区
|
国产亚洲欧美日韩综合综合二区
|
国产欧美日韩精品第三区
|
久久人视频
|
日本亚洲成高清一区二区三区
|
久久综合久久88
|
久久久久亚洲
|
亚洲网美女
|
中文字幕亚洲日本岛国片
|
精品国产一区二区三区在线
|
久久国产精品最新一区
|
免费观看欧美一级特黄
|
亚洲精品久久久午夜伊人
|
色婷婷久久综合中文久久蜜桃
|
中日毛片
|
日韩精品一区二区在线观看
|
在线观看中文字幕亚洲
|
欧美黄色一级视屏
|
成年美女黄网站色视频大全免费
|
国产三级观看
|
国产激情久久久久影
|
日本免费人成黄页在线观看视频
|
真实偷清晰对白在线视频
|
亚洲区精品久久一区二区三区
|
亚洲加勒比久久88色综合1
|
亚洲天堂小视频
|
久久成人免费观看草草影院
|
一本久久道
|
男女性高清爱潮视频免费观看
|
三级网站在线免费观看
|
国产成人在线免费视频
|
亚洲网站一区
|
在线欧美一级毛片免费观看
|
亚洲综合久
|
亚洲一区二区三区精品视频
|
免费观看a级毛片在线播放 免费观看a级网站
|
亚洲一区二区三区视频
|
一级片网站在线观看
|
久久精品国产亚洲综合色
|
一级毛片日韩a欧美
|
福利视频午夜
|