亚洲免费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
        三星電子將開設應用程序下載商店
        日韩黑人欧美在线视频观看| 不卡一区二区视频日本| 一边捏奶头一边高潮视频| 成人国内精品久久久久一区| 六月丁香久久| 亚洲一区二区三区在线观看| 少妇人妻字幕精品毛片专区| 国产无吗一区二区三区在线欢| 久久精品国产亚洲av电影| 无码人妻丰满熟妇区免费| 亚洲午夜经典一区二区日韩| 亚洲av中文无码乱人伦下载| 亚洲av无码乱观看明星换脸va | 极品熟妇大蝴蝶20p| 亚洲精品无人区一区二区三区| 亚洲AV无码国产精品久久l| 国产av一区麻豆精品久久| 国产av无码专区亚洲av男同| 中文字幕人妻熟女人妻洋洋| 欧美中文字幕在线看| 亚洲一区二区日韩精品| 波多野结衣在线播放| 久久久久久人妻一区二区三区 | 一本色道av久久精品+网站| 无码AV无码免费一区二区| 国产三级精品三级在线专区2| 亚洲av无码精品国产成人| 国产女人成人精品视频| 日韩精品av在线一区二区| 蜜臀一区二区三区精品| 人妻无码aⅴ不卡中文字幕| 五月婷婷激情六月| 少妇精品偷拍高潮少妇在线观看| 成熟丰满熟妇av无码区| 精品视频一区二区三三区四区 | 自拍视频在线观看国产| 欧美人妻aⅴ中文字幕| 东北无码熟妇人妻AV在线| 黄页国产精品一区二区免费| 东北女人啪啪对白| 国产真人无码作爱视频免费|