Jimmy的DSP除錯記錄

2021-10-06 18:08:10 字數 2553 閱讀 2514

/* math.cpp */

doublef1(

)doublef2(

double a)

/* end of math.cpp */

並把「這些」函式的宣告放在乙個標頭檔案math.h中:

/* math.h */

doublef1(

);doublef2(

double);

/* end of math.h */

在另乙個檔案main.cpp中,我要呼叫這兩個函式,那麼就只需要把頭檔案包含進來:

/* main.cpp */

include 「math.h」

main()

/* end of main.cpp */

main.cpp檔案中的第一句(#include 「math.h」),在編譯之前就會被替換成math.**件的內容。即在編譯過程將要開始的時候,main.cpp的內容已經發生了改變:

/* ~main.cpp /

double f1();

double f2(double);

main()

/ end of ~main.cpp */

這樣,便是乙個完整的程式了。需要注意的是,.**件必須要在編譯器找得到的地方(比如跟main.cpp在乙個目錄下)。 main.cpp和math.cpp都可以通過預編譯、編譯,生成main.o和math.o,然後再把這兩個目標檔案進行鏈結,程式就可以執行了。

cmd file

dsp2837x_headers_nonbios.cmd,該檔案無論是燒寫到flash或是ram中都可以用,在所有工程中也是通用的,其重要的作用是把外設暫存器的資料對映到對應的儲存空間中,例如在f2837xd_globalvariabledefs.c中,一adca暫存器為例。

#ifdef __cplusplus

#pragma data_section("adcaregsfile")

#else

#pragma data_section(adcaregs,"adcaregsfile");

#endif

volatile

struct adc_regs adcaregs;

用volatile定義變數告訴編譯器該變數是變化的,該關鍵字的詳解

由上可知adcaregs是乙個結構體變數名其定義在f2837xd_adc.h中,通過預處理命令#pragma為該結構體定義乙個名為adcaregsfile的資料段。f2837x_headers_nonbios_cpu1.cmd,定義如下:

memory

sections }

adcaresultfile :

> adca_result, page =

1 adcbresultfile :

> adcb_result, page =

1 adccresultfile :

> adcc_result, page =

1 adcdresultfile :

> adcd_result, page =1

adcaregsfile :

> adca, page =

1 adcbregsfile :

> adcb, page =

1 adccregsfile :

> adcc, page =

1 adcdregsfile :

> adcd, page =

1}

在memory中定義乙個儲存空間adca,它的起始位址和長度,sections偽指令把adcaregsfile資料段裝載到名稱為adca的儲存空間中。結構體adcaregs的具體位置就確定了,所以通過這幾層對映的關係,當向adcaregs寫資料時即可準確的寫入dsp內部暫存器所在的儲存器的位置。由此看見,cmd的作用就是為程式**和資料分配儲存空間。

load to flash, run in ram

新增對應的cmd檔案

不要從別的專案直接複製,如果自己沒有特殊的cmd需求的話,在ccs的property中直接選擇即可

properties - general - linker command file

在main函式的開頭寫memcy函式

/* load program into flash and run in ram */

memcpy(&ramfuncsrunstart, &ramfuncsloadstart, (size_t)&ramfuncsloadsize);

initflash();

```3. 如果在main開頭插入了這兩行**,就不用在predefine中定義 _flash,這兩種操作的效果應當是等效的

linux Linux除錯記錄

剛安裝完 linux 後,在輸入命令或者用 vi 編輯的時候會發出報警的蜂鳴聲,很難受。vi etc inputrc找到裡面的設定 bell style set bell style none將前面的 去掉,讓這個配置生效 set bell style none然後重啟系統就可以去掉蜂鳴聲 rebo...

EasyExcel除錯記錄

一.pom.xml com.alibaba easyexcel 2.2.6 二.必須要finish才會寫入,不finish只會建立empty的檔案。writesheet writesheet easyexcel.writersheet 測試1 head list build excelwriter....

pytorch除錯記錄

除錯報錯 runtimeerror input type torch.cuda.floattensor and weight type torch.floattensor should be the same 截圖 說明 在除錯執行導師給的程式residual net的gunpoint程式時,出現報...