DSP+ARM多核異構開發環境SYSLINK搭建OMAPL138


DSP+ARM多核異構開發環境搭建OMAPL138

注意: 環境為Ubuntu 12.04 只能是這個環境。我甚至在Ubuntu16.04上面安裝了VMware,然后,在裝了一個Ubuntu 12.04 x86版本。

導語與感想

OMAPL138屬於多核異構平台(DSP+ARM),多核通信是多核異構平台的精髓部分,目前市面上流行的還有ZYNQ平台(FPGA+ARM),同樣通信機理復雜。德州儀器OMAPL138和Davinci使用一樣的多核通信機理。

這個機制相當復雜,又要懂Linux,又要會調試DSP,又要熟練掌握ARM的嵌入式Linux,又要抓住多核通信機制,實在讓人抓狂。DSP端使用CCS,用JTAG口進行仿真,ARM端使用終端GDB命令進行動態調試配合調試輸出完成多核通信的開發。

好吧,步入正題了,准備好以下的素材(不要被嚇到)

一定要對於文件、編譯器有個很好的管理,杜絕東一塊西一塊,左一個文件,又一個文件,否則到時候自己蒙了。本人習慣在自己用戶的文件夾創建opt文件夾(用於安裝非root權限運行的軟件),script文件夾(用於處理一些腳本文件)、work(待交叉編譯的源代碼文件)、setup(安裝、壓縮包文件)、workspace(編程工程文件路徑)、lib(第三方庫文件夾)

搭建前准備素材

  • CGT_組件:ti_cgt_c6000_7.3.0.tar.gz
  • 多核通信組件:mcsdk_1_01_00_02_setuplinux.bin
  • C6000的Starterware庫:OMAPL138_StarterWare_1_10_04_01-Linux-x86-Install
  • Qt圖形界面庫:qwt-6.1.0.tar.bz2
  • DSP BIOS組件:bios_5_41_10_36.tar.gz
  • dsplink組件:dsplink_linux_1_65_00_03.tar.gz
  • Qt源文件:qt-everywhere-opensource-src-4.8.3.tar.gz
  • DSP編譯工具鏈:xdctools_3_22_01_21.tar.gz
  • CCS的Linux版本:ccs 5.5 for Linux
  • 內核源文件:linux-3.3.tar.bz2
  • arm-linux交叉編譯工具鏈:arm-2009q1-161-arm-none-eabi.bin

以上這些文件,全部存在~/setup文件下

環境前提

  1. Ubuntu版本為12.04,(不要嘗試新版,OMAPL停更了,組件最新支持到ubuntu12.04)
  2. 配置好交叉編譯環境
  3. Linux3.3內核編譯正確
  4. Qte編譯正確
  5. CCS的Linux版本安裝好

編譯Linux3.3內核

參考我的博客:(基於OMAPL:Linux3.3內核的編譯)[https://www.cnblogs.com/sigma0/p/9149041.html]

編譯正確Qt

Qt版本使用的是Qt4,Qt5還沒有實驗,等着實驗完Qt5會過來更新。

參考我的博客:(Linux編譯Qt4的環境_OMAPL138
)[https://www.cnblogs.com/sigma0/p/8168313.html]

最后我之前設定的Qt make install的路徑室/opt/qt-arm-4.8.3 (后面會用到)

編譯QWT組件

qwt 全稱是"Qt Widgets for Technical Applications",是一個基於 LGPL 版權協議的開源
項目,可生成各種統計圖。QWT的編譯需要基於上一章節編譯QT,編譯出的qmake編譯器

解壓qwt

准備qwt-6.1.0.tar.bz2文件,解壓到~/work路徑下:
tar -xvf qwt-6.1.0.tar.bz2 -C ~/work

配置QWT編譯環境(使用創龍公司)

需要修改兩個地方:

  • 在"qwt-6.1.0/qwtconfig.pri"文件第 100 行 QwtOpenGL 和 119 行 QwtDesigner 前面增加。符號"#",表示注釋掉此兩行,因為此例程沒有使用 QwtOpenGL 和 QwtDesigner。如下圖所示:
  • 修改 QWT_INSTALL_PREFIX 最后QWT輸出路徑。
    注釋掉的信息
    修改輸出路徑

在 qwt 目錄下執行以下命令產生 Makefile 編譯文件:
/opt/qt-arm-4.8.3/bin/qmake

ls 如果有Makefile文件則表示配置成功。

編譯QWT和安裝

在 qwt 根目錄下執行以下命令編譯 qwt 組件源碼:
make -j4 啟動4個線程編譯

編譯完成后:

在 qwt 根目錄下執行以下命令安裝 qwt 組件:
sudo make install

該組件會解壓到QWT_INSTALL_PREFIX指定的路徑中:/opt/qwt-6.1.0

將庫發送到開發板(HOST)端

將"/opt/qwt-6.1.0/lib"下的所有文件拷貝到開發板文件系統"/usr/lib"目錄下,用SD卡也可以,用scp命令也可以。

安裝CCS

安裝過程請參考我發在貼吧上的教程:我這里用的是CCS5.5版本,大同小異 (在LINUX(ubuntu)系統下裝CCSv6方法)[https://tieba.baidu.com/p/3698761357]

注意路徑安裝到 /opt/ti下

安裝StarterWare庫

執行:sudo ./OMAPL138_StarterWare_1_10_04_01-Linux-x86-Install
安裝路徑為: /opt/ti下

安裝配置MCSDK

MCSDK是多核通信組件。

安裝MCSDK

准備好mcsdk_1_01_00_02_setuplinux.bin,注意路徑安裝到/opt/ti下,完全安裝就好。

sudo ./mcsdk_1_01_00_02_setuplinux.bin

配置MCSDK

進入"mcsdk_1_01_00_02"目錄下,啟動 MCSDK 設置腳本,根據不同主機設置,進行tftp、nfs、U-Boot 等配置。在設置之前,務必保證虛擬機網絡暢通。

cd /opt/ti/mcsdk_1_01_00_02/
sudo ./setup.sh

  • 問你NFS目標地址安裝在哪里,直接回車
  • 問你是否是root權限啟動的配置,直接回車
  • 創建EXEC_DIR等等環境變量,回車
  • 問tftp路徑直接回車
  • 串口部分,我們用的室CH340所以是/dev/ttyUSB0
  • 問ip,輸入omapl138板子的ip地址
  • 問你Linux Kernal位置,我的在SD卡
  • 問你root file system的位置,我的在SD卡
  • 問nfs文件系統啟動方式啟動方式,直接回車
  • 啟動tftp下載內核鏡像,n
  • installing linux devkit Y
  • 最后看到TI SDK SETUP COMPLETED配置已經完成。
     在安裝完之后TI路徑下就該有這些東西

SYSLINK的配置和安裝

cd /opt/ti/syslink_2_21_01_05
進入該路徑下,打開配置文件:
sudo vim products.mak
要改的內容在下面

DEVICE	=	OMAPL1XX
SDK	=	NONE
EXEC_DIR	= /media/delvis/rootfs  // host root文件系統路徑 可以在SD卡上(需要掛載),也可以暫時存儲到你電腦臨時文件夾上,到時候拷貝到SD卡上
DEPOT	=	/opt/ti		// MCSDK 安裝路徑

接下來配置的如圖所示:

配置完成后保存退出。

編譯syslink源代碼

編譯 syslink 之前,先將以下兩個宏定義添加到 syslink 中的 Omapl1xxIpcInt.c、omapl1xx_phy_shmem.c、omapl1xxpwr.c 文件開頭,否則編譯會出錯。
(1) /opt/ti/syslink_2_21_01_05/packages/ti/syslink/ipc/hlos/knl/notifyDrivers/arch/omapl1xx/Omapl1xxIpcInt.c
(2) /opt/ti/syslink_2_21_01_05/packages/ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/Linux/omapl1xx_phy_shmem.c
(3) /opt/ti/syslink_2_21_01_05/packages/ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c

  • Omapl1xxIpcInt.c 文件,修改在頭處添加文件
#undef __ASM_ARCH_HARDWARE_H
#include <mach/hardware.h>
  • omapl1xx_phy_shmem.c文件,修改在頭文件處添加
#undef __ASM_ARCH_HARDWARE_H
#include <mach/hardware.h>
  • omapl1xxpwr.c 文件,修改在頭文件處添加
#undef __ASM_ARCH_HARDWARE_H
#include <mach/hardware.h>

cd /opt/ti/syslink_2_21_01_05
make syslink

編譯syslink示例

make samples

安裝syslink驅動程序

sudo make install
返回到在setup.sh配置syslink的時候指定的rootfs目錄,ls lib/modules/3.3.0/kernel/drivers/dsp/

可以看到在文件系統"lib/modules/3.3.0/kernel/drivers/dsp/"目錄下有 syslink 驅動程序syslink.ko 文件和文件系統根目錄下有"ex**_##"的示例程序。
就配合環境成功了。

參考文獻

[1]創龍公司,基於 OMAPL138 的多核軟件開發組件 MCSDK 開發入門
[2]創龍公司,OMAPL138基於SYSLINK的雙核例程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM