亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于TMS320F28335的程序從FLASH到RAM的移植與運行

        2011-01-24 13:59:40楊宣兵
        關鍵詞:存儲空間應用程序代碼

        楊宣兵 , 陳 明, 彭 義

        (1. 湖南理工學院 信息與通信工程學院, 湖南 岳陽 414006; 2. 岳陽千盟電子公司, 湖南 岳陽 414000)

        引言

        TI 公司的TMS320F28335 DSP具有32位TMS320C28X CPU和FPU處理器, 片上FLASH、SARAM以及外設相比 TMS320F2812有了進一步的擴展和增強, 它是目前控制領域中的先進處理器, 在電機控制、變頻器、不間斷電源以及電力線通信等系統(tǒng)中應用越來越廣泛. 一般而言, DSP系統(tǒng)工作過程為: 通過AD采樣外部信號, DSP對AD采樣數(shù)據(jù)完成實時信號處理, 一般包括數(shù)字濾波、FFT運算等, 同時根據(jù)運算的結果產生控制信號. 在系統(tǒng)設計完成后, 程序需要固化在片上 FLASH, 一般而言, CPU對FLASH的訪問至少需要5個以上的等待周期, 這在實際的實時處理系統(tǒng)中是絕對不允許的, 因此需要系統(tǒng)在上電時通過TI 的Bootloader將固化在片上FLASH上的程序加載到RAM中并在RAM中運行, 實現(xiàn)零等待, 使代碼運行最有效率. 本文分析代碼運行過程, 實現(xiàn)將片上FLASH中應用程序加載到片上RAM中運行方法.

        1 系統(tǒng)運行流程分析

        在進行軟件設計之前, 首先要了解TMS320F28335 DSP運行過程. 當系統(tǒng)上電復位后, 程序到復位向量0x3FFFC0位置開始程序執(zhí)行, 在復位向量處根據(jù)向量內容跳轉到片上ROM里面的Boot ROM位置執(zhí)行初始化引導函數(shù)InitBoot, InitBoot完成對芯片的初始化, 并調用模式選擇函數(shù)SelectBootMode來確定引導模式, 選擇Jump to FLASH模式. 程序退出BOOT轉向FLASH中0x33FFF6處執(zhí)行程序, 用戶需要在0x33FFF6開始程序的設計. 系統(tǒng)從復位開始到轉向FLASH過程如圖1所示.

        圖1 系統(tǒng)從上電到FLASH入口流程

        在開發(fā)基于TMS320F28335 DSP應用系統(tǒng)時, 在開發(fā)調試階段用戶程序加載和執(zhí)行都在RAM中, 用戶代碼執(zhí)行流程如圖2所示.

        圖2 程序調試階段運行流程

        在應用程序調試成功后, 將程序固化在FLASH, 在上電時將FLASH中程序加載RAM, 并在RAM中運行. 用戶代碼執(zhí)行流程如圖3所示.

        圖3 程序加載運行流程

        2 代碼搬移實現(xiàn)方法

        2.1 代碼搬移分析

        在DSP2833x_CodeStartBranch.asm模塊中包含了code_start和wd_disable流程. 上電后code_start流程應加載到存儲空間的0x33FFF6 FLASH處, 在此處安排跳轉指令到wd_disable流程, 完成watchdog的禁止, 然后調用copy_sections函數(shù)完成用戶應用程序代碼從FLASH到RAM的移植過程. 因此code_start,wd_disable和copy_sections要求在加載和運行于FLASH中. 需要將DSP2833x_CodeStartBranch.asm模板代碼作相應調整, 主要表現(xiàn)為以下幾點:

        ① 將code_start流程中LB _c_int00修改為LB copy_sections;

        ② 將wd_disable流程中 .text 修改為.sect “wddisable”, 主要原因是.text段會移植到RAM中運行, 而wd_disable流程必須代碼搬移之前執(zhí)行, 因此必須在FLASH中執(zhí)行, 將自定義已初始化段wddisable加載和運行定位于FLASH中;

        ③ 將wd_disable流程中LB _c_int00修改為LB copy_sections;

        ④ 需要將sectionCopy.asm模塊添加到工程中來, 至此完成代碼搬移代碼的準備工作;

        ⑤ 因為系統(tǒng)調試完畢, 所以可執(zhí)行代碼都應該加載在 FLASH, 此時需要將 DSP2833x_usDelay.asm模塊中_DSP28x_usDelay子程序加載和運行在“ramfuncs”段修改為加載在FLASH中, 而運行在RAM中,即將 .sect “ramfuncs” 修改為 .text 就行;

        ⑥ 因為FLASH的配置函數(shù)InitFlash( )必須加載和固化在FLASH, 而運行必須在RAM中, 因此可以將模塊DSP2833x_SysCtrl.c的pragma CODE_SECTION(InitFlash, “ramfuncs”)去掉, 即直接把此函數(shù)定位在.text段, 而在系統(tǒng)上電時把.text段搬移到片內RAM中執(zhí)行.

        2.2 CMD文件修改

        CMD文件完成存儲空間的配置并告訴鏈接器將輸出段鏈接到物理存儲器的位置, 指定各輸出段的加載和運行地址. 下面是 MEMORY部分幾個重要的區(qū)域, 主要完成程序的固化, 加載和運行. 下面給出鏈接器命令文件(.cmd文件)的存儲器配置命令MEMORY和輸出段加載和運行定位命令SECTIONS的部分內容如下:

        因為在用戶代碼從 FLASH搬移到片內 RAM 之前, 程序的運行必須在非易失性存儲器(即TMS320F28335 DSP的FLASH ), 因此codestart、wddisable以及copysections必須加載和運行于FLASH中, 其他的已初始化段加載在FLASH中而運行在片上RAM中, 因此對這些段的加載和運行必須指定不同的存儲空間, 如上面給出的F28335_nonBIOS_flash.cmd文件中.text段所示.

        2.3 軟件測試

        我們在開發(fā)基于DSP的無線感應通信器項目中, 首先完成軟件在RAM中仿真調試, 然后將2DPSK調制的DSP應用程序燒寫到FLASH, 斷開仿真器與DSP硬件系統(tǒng)的連接, 將DSP系統(tǒng)上電, 系統(tǒng)自動完成應用程序上電啟動和向RAM的搬移并在片內RAM中運行, 通過示波器觀察調制信號輸出與調試階段一致, 達到相應要求.

        3 結束語

        本文給出了TMS320F28335 DSP應用程序在片內RAM高速運行的移植方法, 并在項目開發(fā)中驗證了方法的可行性, 在實際項目開發(fā)的后期階段具有重要的實際意義. 另外, 也要注意, 如果應用程序較大,片內RAM空間除去作為數(shù)據(jù)存儲空間外, 不足以把所有的應用程序從FLASH移植到片內的RAM, 就可以考慮將適時性要求較高的代碼進行移植運行, 或者外部擴展高速的片外RAM.

        [1]寧改娣. DSP控制器原理及應用[M]. 第2版. 北京: 科學出版社, 2009

        [2]TI. TMS320x2833x, 2823x BOOT ROM Reference Guide(Literature Number: SPRU963A),2007-Revised 2008

        [3]TI. Copying Compiler Sections From Flash to RAM on the TMS320F28xxx DSCs(Literature Number: SPRAAU8), 2008

        [4]孫中禹. 數(shù)字信號處理器TMS320F2812的片內FLASH應用程序設計[J]. 電子元器件應用, 2009(12): 28~30

        猜你喜歡
        存儲空間應用程序代碼
        基于多種群協(xié)同進化算法的數(shù)據(jù)并行聚類算法
        蘋果訂閱捆綁服務Apple One正式上線
        綜藝報(2020年21期)2020-11-30 08:36:49
        用好Windows 10保留的存儲空間
        刪除Win10中自帶的應用程序
        電腦報(2019年12期)2019-09-10 05:08:20
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        關閉應用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        三星電子將開設應用程序下載商店
        五月停停开心中文字幕| 欧美疯狂做受xxxx高潮小说| 国产98在线 | 免费| 超级碰碰人妻中文字幕| 久久伊人精品中文字幕有| 成人欧美一区二区三区在线观看| 中文字幕人妻av一区二区 | 国产我不卡在线观看免费| 亚洲深深色噜噜狠狠网站| 国产人妻人伦精品1国产盗摄| 亚洲产在线精品亚洲第一站一 | 精品国产av无码一道| 蜜桃av区一区二区三| 精品亚洲第一区二区三区 | 亚洲高清中文字幕视频| 成 人 免费 在线电影| 亚洲天堂在线视频播放| 国产偷闻隔壁人妻内裤av| 最新日本人妻中文字幕| 久久久久亚洲av片无码下载蜜桃| 亚洲黄色一级毛片| 亚洲国产免费一区二区| 久久亚洲精品中文字幕| 怡红院a∨人人爰人人爽| 免费看欧美日韩一区二区三区| 日本一区二区三区免费| 98色婷婷在线| 亚洲精品无码久久久久sm| 巨臀精品无码AV在线播放| 亚洲av毛片在线网站| 亚洲欧美日韩在线不卡| 亚洲AV永久青草无码性色av| 在线观看国产精品一区二区不卡| 18禁免费无码无遮挡不卡网站| 99久久亚洲精品无码毛片| 黄色录像成人播放免费99网| 免费在线视频亚洲色图| 亚洲乱亚洲乱妇50p| 99久久免费国产精品2017| 精品久久一区二区av| 亚洲精品乱码久久久久久不卡|