LAUNCHXL-F28379D點燈

一直想弄個DSP來玩玩,看到F28379的200MHz主頻有點心動,忍不住剁手了。前幾天到的板子,今天抽空點了個燈,廢話不多說,下面是主要步驟:


先推薦個文檔,TI的controlSUITE裏面的F2837xD Firmware Development Package USER’S GUIDE,直接在官網下載controlSUITEhttp://www.ti.com.cn/tool/cn/controlsuite?keyMatch=controlsuite&tisearch=Search-CN-Everything

這是文檔所在目錄

環境:CCS6.2

板子的話當然就是這款LAUNCHXL-F28379D啦


下面開始點燈

 

1打開CCS,File->New->CCS Project,如圖所示,然後Finish

2.修改項目配置,Ringht click->Properties->Processor Options,確保你的配置如下圖

3.Go ahead,

C2000 Compiler->Include Options,點擊綠色加號來添加包含文件的路徑,這個修改這個地方可以修改工程裏include的文件夾,如下圖

 

4.Advanced Options->Predefined Symbol

5. 5.

 6.C2000 Linker->Advanced Options->Symbol Management,添加_c_int00指定要進入代碼的程序入口點,最後點擊OK完成配置

By the way,有一步文檔裏沒有提到,就是把Linker command file改爲<none>,否則後面編譯的時候會報錯,因爲第5步include command的時候已經將cmd文件包含進去了

7.然後我們需要在頭文件中使用的幾個文件中鏈接,右鍵工程文件夾->Add Files...選擇要添加的文件

選擇Link的方式就可以,因爲TI的代碼源文件是項目間共用的,Link不會修改這些文件。 以下是要添加的文件:

F2837xD_headersn\source\F2837xD_GlobalVariableDefs.c

F2837xD_common\source\F2837xD_CodeStartBranch.asm
F2837xD_common\source\F2837xD_usDelay.asm
F2837xD_common\source\F2837xD_SysCtrl.c
F2837xD_common\source\F2837xD_Gpio.c
F2837xD_common\source\F2837xD_Ipc.c

8.右鍵工程文件夾->New->Source File,命名爲main.c,然後將以下代碼複製到剛建的文件中,保存

/*
 * main.c
 *
 *  Created on: 2018年8月10日
 *      Author: Limerrence
 */
#include "F28x_Project.h"
void main(void)
{
	uint32_t delay;
	InitSysCtrl();
	// Set pin direction
	EALLOW;
	GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;
	EDIS;
	GPIO_SetupPinOptions(34, GPIO_OUTPUT, GPIO_PUSHPULL);
	GPIO_SetupPinMux(34, GPIO_MUX_CPU2, 0);
	// turn off LED
	GpioDataRegs.GPADAT.bit.GPIO31 = 1;
	while(1)
	{
		// Turn on LED
		GpioDataRegs.GPADAT.bit.GPIO31 = 0;
		// Delay for a bit.
		for(delay = 0; delay < 2000000; delay++)
		{
		}
		// Turn off LED
		GpioDataRegs.GPADAT.bit.GPIO31 = 1;
		// Delay for a bit.
		for(delay = 0; delay < 2000000; delay++)
		{
		}
	}
}

 

到此CPU1的工程就建好了,接下來是CPU2的工程,和CPU1工程的建立是基本一樣的


1.File -> New -> CCS Project,當然名字不一樣

 

2.

3.

4.

5. 

6.

7.如圖,然後OK

8. 添加文件,和CPU1工程第7步一樣

9.新建一個main.c文件,將以下代碼複製粘貼,然後保存

/*
 * main.c
 *
 *  Created on: 2018年8月10日
 *      Author: Limerrence
 */
#include "F28x_Project.h"
void main(void)
{
	uint32_t delay;
	// turn off LED
	GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
	while(1)
	{
		// Turn on LED
		GpioDataRegs.GPBDAT.bit.GPIO34 = 0;
		// Delay for a bit.
		for(delay = 0; delay < 2000000; delay++)
		{
		}
		// Turn off LED
		GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
		// Delay for a bit.
		for(delay = 0; delay < 2000000; delay++)
		{
		}
	}
}

最後添加完文件應該是這樣的

 


兩個工程都建好了,然後開始debug,連接LAUNCHXLF28379D,電腦會自動安裝驅動

1.接下來要做的就是創建一個新的目標配置,File -> New -> Target Configuration,命名爲F2837xD_xds100.ccxml,

 2.Import Example Project,File -> Import->C/C++->CCS Project

注意文件夾所在路徑和勾選內容,Do not select "Copy projects into workspace". These projects link to external
resources relatively, so taking them out of controlSUITE will break the project.Click Finish

 

3.Build each of the example projects. Right click on each project title and select build project.

 

4.View->Target Configurations,Link to the two projects you had just built

5.下面就可以Launch了

6.

7.Connect to the device. Right click on each core in the debug window and select "Connect
Target.

 Like This,確保該CPU處於Suspened狀態

8.Load code on each of the cores. Select one of the cores in the debug window and then click
Run->Load-> Load Program.Select the Correct .out Flie.

最後一步,分別選中兩個CPU分別運行,再然後就看到燈閃了

注意,文檔中main.c文件中的GPIO10和GPIO14在LAUNCHXL中對應的分別是76和74引腳,在這裏我改成GPIO31和GPIO34,分別對應着LAUNCHXL上的藍燈和紅燈

光線問題,看的不是很清楚。。。。。。


以上只是RAM調試,掉電之後程序就沒有了,要想將程序寫到flash裏面,只需要將對應的ram.cmd文件換成對應的flash.cmd文件就行了

 還有調試過程不能加斷點的問題,只需要在Breakpoints窗口右鍵Remove All就可以了,這是因爲斷點的數量是一定的,不能無限加


好了,搞了這一整天總算是點了個燈,很多寫得不到位的地方請批評指正。然後我想說很多論壇的學習氛圍挺好的,很多大牛出沒,我也從中學到了很多。然後就是想問有玩MSP432、STM32、ESP的嗎?交流交流,當然有大佬願意帶帶我我也不介意的哈


完!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章