日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DM3730开发

發(fā)布時間:2024/1/1 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DM3730开发 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?DM3730雙核開發(fā)

前言

? ? DM3730是由德州儀器(TI)推出的雙核處理器,處理器集成了高達(dá)1GHz的ARM Cortex-A8內(nèi)核及高達(dá)800MHz的具有高級數(shù)字信號處理的DSP(TMS320C64x+),并提供了豐富的外設(shè)接口(更詳細(xì)的配置說明請點擊DM3730用戶手冊下載). ARM端主要跑Linux操作系統(tǒng),DSP主要進(jìn)行數(shù)字信號高速計算,ARM和DSP之間通過DVSDK進(jìn)行通信.所以本教程主要分三部分:ARM端、DSP端和ARM與DSP的通信.

第一部分 ARM核

? ? ARM端要進(jìn)行的工作主要分為兩部分:交叉編譯和運行編譯后的程序

1.1 交叉編譯工具arm-none-linux-gnueabi-gcc的安裝

1.1.1 安裝Ubuntu

? ? Linux有不同的distribution,Ubuntu是其中一個比較優(yōu)秀的distribution,我在Ubuntu10.04和Ubuntu12.04都成功安裝了交叉編譯工具,所以建議大家安裝這兩個版本之一.Ubuntu的安裝有多種方式,其中比較常見的有wubi安裝,硬盤安裝,光盤安裝及虛擬機安裝等.本文給出Ubuntu官方網(wǎng)站,可以從官網(wǎng)上下載不同版本的Ubuntu源文件,然后從網(wǎng)上找到安裝Ubuntu的方式即可,此處不再贅述.

1.1.2 打開終端(Alt + Ctrl + t)

1.1.3?下載arm-none-linux-gnueabi-gcc安裝包

1.?將下邊命令復(fù)制到終端中

? ?wget http://www.codesourcery.com/sgpp/lite/arm/portal/package4571/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

? ?(如下圖所示)?

??

? ?2.按鍵盤Enter鍵即可開始下載arm-none-linux-gnueabi-gcc安裝包(如下圖所示) ? ?

3. 下載完成(如下圖示)

?? ? ?

1.1.4 ?拷貝到下載后的工具包到/usr/local目錄下?

將下邊命令復(fù)制到終端中 sudo cp arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 /usr/local? (如下圖示) 按下鍵盤上Enter鍵即可將arm-none-linux-gnueabi-gcc工具包拷貝到/usr/local目錄下,這時就可以在/usr/local目錄下出現(xiàn)一個以arm開頭的壓縮包(如下圖示)

1.1.5 解壓上圖所示的文件

將下邊命令復(fù)制到終端中 sudo tar -jxvf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 即可完成解壓工作(如下圖所示) 執(zhí)行以上命令后,arm-none-linux-gnueabi-gcc安裝包會被解壓到當(dāng)前目錄下的一個arm-2009q1目錄中。查看當(dāng)前工作目錄的方法是在終端中輸入 pwd 然后按Enter鍵即可 用命令ls 可以看到當(dāng)前工作目錄下有arm-2009q1這個目錄(如下圖示) 1.1.6 ??

添加交叉編譯工具路徑

關(guān)于增加PATH的知識這里不再贅述,有興趣的同學(xué)可以看看Linux鳥哥私房菜(基礎(chǔ)學(xué)習(xí)篇)上邊有比較詳細(xì)的介紹,這里只介紹傻瓜式的操作步驟(這一步很關(guān)鍵,一定要認(rèn)真按照教程一步步的做)

1.打開/etc/bash.bashrc腳本

將下邊命令復(fù)制到終端中: ?

gedit /etc/bash.bashrc

然后出現(xiàn)下圖所示結(jié)果



?2.增加/usr/local/arm-2009q1/bin/目錄到PATH變量中
在gedit打開的文件的最后一行輸入下邊這個命令:

export PATH=$PATH:/usr/local/arm-2009q1/bin/ (如下圖示) 最后保存退出! 1.1.7 執(zhí)行/etc/bash.bashrc腳本 將下邊命令復(fù)制到終端中: ? source /etc/bash.bashrc
1.1.8 驗證 在終端中先輸入arm-,然后按<Tab>鍵。如果能夠自動補齊為arm-none-linux-gnueabi-,則說明安裝成功.(如下圖示) 注意:如果您的操作系統(tǒng)是64位的Ubuntu要輸入下邊命令來運行32操作系統(tǒng)上的交叉編譯工具鏈(這一步我沒有做,不保證成功) sudo apt-get install ia32-libs
至此我們已經(jīng)成功安裝上了交叉編譯環(huán)境,下邊我們將介紹一下這個交叉編譯環(huán)境的使用方法

1.2??交叉編譯工具arm-none-linux-gnueabi-gcc的使用

所謂交叉編譯就是在Linux的?arm-none-linux-gnueabi-gcc編譯器下編譯程序,在ARM端運行編譯后的可執(zhí)行程序.故接下來將分別討論在Linux和ARM上的操作方法.

1.2.1 Linux上的操作

1.首先要在當(dāng)前工作目錄下編寫純C程序(Hello World.c),這里就以經(jīng)典的hello world為例介紹Linux端的操作

#include <stdio.h>

int main (void)

{

? ? ? printf("Hello World!\n");

? ? ? return 0;

}

2. 編譯Hello World.c

在終端中輸入 ?arm-none-linux-gnueabi-gcc ?-o ?Hello ?HelloWorld.c ? (如下圖所示)


其中arm-none-linux-gnueabi-gcc為編譯器的名字,?Hello為編譯后可執(zhí)行程序的名字,?HelloWorld.c 為源程序.

然后得到可執(zhí)行程序:Hello ?(如下圖所示)


1.2.2 ?在DM3730ARM 核上的開發(fā)

?1.開發(fā)環(huán)境的快速搭建:主要分為硬件的搭建和軟件環(huán)境的搭建,這部分要在XP環(huán)境下進(jìn)行.具體的搭建過程請看我上傳的DM3730快速入門?,里邊有詳細(xì)的介紹.

2.按照上邊的文檔搭建過開發(fā)環(huán)境后,切換到root用戶,然后轉(zhuǎn)到可執(zhí)行程序所在的目錄,在命令行中直接輸入可執(zhí)行程序的名字,程序就會自動執(zhí)行.

至此DM3730在ARM端的開發(fā)已經(jīng)完成.


第二部分 ? DSP核

?2.1 CCS安裝概述

? ? ? 本項目用的是CCS4.1.2編譯器以及XDS100V2仿真器,安裝CCS4.1.2的過程可以去網(wǎng)上下載,然后一步步的安裝,需要說明的是初學(xué)者最好按照安裝程序默認(rèn)設(shè)置去安裝,路徑中不能有中文,CCS4以上的版本自帶的有XDS100V2的驅(qū)動,而CCS3需要安裝驅(qū)動.

2.2 CCS4.1.2 環(huán)境下建工程請參考CCS4.1.2建工程

? ? ? CCS4相對于CCS3及以前的版本有很大的不同,CCS4以前的版本需要自己寫cmd和GEL文件然而CCS4以上的版本不需要自己寫cmd文件,一般都是編譯器自動幫你配好的,這個可以說是一大進(jìn)步,但是編譯器的這種進(jìn)步也可能會帶來莫名其妙的錯誤.例如CCS4默認(rèn)的stack和heap的大小都是1k(0x400),但是對于需要內(nèi)存比較大的項目來說在編譯階段會報類似下圖所示的錯誤: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? 對于一般的warning我們可以置之不理,但是 如果是跟內(nèi)存有關(guān)的warning我們一定要重視,如果編譯階段出現(xiàn)這個warning的話在程序運行階段一般會 出現(xiàn)諸如TMS320C64+: Error: Illegal opcode (0002f960) at pc = 0x0002e3a4 Illegal opcode at pc = 0x0002e3a4 ??這樣的錯誤.究其原因就是因為編譯器默認(rèn)的stack和heap的大小都是1K,所以我們需要修改stack和heap的大小.方法是在C/C++project模式下右擊下邊的第一項然后選擇Build properties... (如下圖所示)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????

然后彈出一個對話框,選擇Tool Settings(如下圖所示)



點擊C6000 Linker下的Basic Option,出現(xiàn)下圖所示的內(nèi)容:

上圖所示空白處分別為stack和heap的大小,編譯器默認(rèn)是1K(0x400).你可以根據(jù)自己項目的需要自己設(shè)置大小,直到編譯時不會出現(xiàn)類似上邊的warnings.例如我的需要把stack和heap設(shè)為16M(0x1000000)才可以編譯通過.(如下圖所示)

? ?

最后點擊OK即可.


第三部分 ARM核與DSP核通信 (未完待續(xù)...)



? ??











總結(jié)

以上是生活随笔為你收集整理的DM3730开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。