關於CCS編譯以及debug的時候的一些問題解決辦法

記錄一下我在使用ccs過程中遇到的一些問題,我使用的版本是ccs7.2的版本。
小白一枚,環境讓人心累。

  1. debug的時候連接不上仿真器。報錯:Source lookup: unable to restore CPU specific source container - expecting valid source container id value.
    在這裏插入圖片描述
    原因應該是project的ccs版本和我現在使用的版本不兼容導致的。
    解決措施:刪除掉project文件夾下settings和launchs這兩個文件夾,然後再重新編譯一下,這樣就會生成兩個新的文件夾。這樣就可以debug了。

  2. 編譯的時候報錯: Can’t find the target named 'devkits.target.Generic’
    應該是某個時候出錯導致target name被修改了。所以找不到target name。
    解決措施:去留存的源文件哪裏找到target name。然後修改過來,就完事了。

3.導入別人給我的工程文件的時候報錯 C/C++indexer has encountered a problem 。An internal error occurred during: “C/C++ Indexer”. java.util.NoSuchElementException
具體什麼原因不知道
但是解決措施是把別人生成的文件刪掉,就是下面這個:
在這裏插入圖片描述
然後在用import legacy CCS3.3的方式導入,注意這個時候導入的是需要導入下面的pjt文件,然後就可以了。解決、

4.編譯的時候提示"HWI_RESET"等函數未定義
如下:#10104 undefined symbol “HWI_DLOG” used in expression F28035_BIOS_flashcfg.cmd /HYBRID_SLAVE/Debug line 105 C/C++ Problem
如下圖;
在這裏插入圖片描述
非常操蛋,搞了兩三個小時,百度上僅有的一兩條也純粹是在扯淡。
解決辦法;
這種時候多半是你的編譯器選擇出現了問題,問一下其他工程師編譯器用的是什麼版本,照做就是了。我也不知道爲啥編譯器版本不對爲啥不報編譯器incompatible,真是fuck。反正解決就完事了。
比如一體機的副DSP用的就是6.1.3版本的compiler的版本。
另外,build的時候linker command file 不要選。

5. 副DSP編譯文件的時候沒有生成hex文件
不要按照網上的把enable C2000 Hex Utility勾選,這樣會又是一堆錯誤。
方法是看一下你的編譯器裏的位置,如圖所示:
在這裏插入圖片描述
然後把這個路徑複製到這裏來:
在這裏插入圖片描述
注意雙引號。

這樣在編譯完了之後,在工程文件架裏的Debug裏就可以看到最近生成的Hex文件了。

6.怎麼解決keil4打開keil5工程卡死的情況
記錄一下ARM的一個坑,是別人keil5打開過的文件,然後我現在安裝的是Keil4,然後現在面臨的問題是我打開工程文件就卡死,浪費了不少時間,這種問題最心累了。
解決辦法:
https://blog.csdn.net/paoxungan5156/article/details/81005110
按照上面這個博客來做就可以解決。
在這裏插入圖片描述
另外編譯的時候,如果遇到了大量的說RAM space不夠,先檢查一下自己選擇的芯片對不對再說吧,也是個坑,目前我們1-6k用的是NXP的LPC1768。(這裏就曾遇到過不知道怎麼的選擇了1766,結果報900多哥error說space不夠。)

7. DSP編譯的時候遇到說找不到指定路徑問題。
如下圖
在這裏插入圖片描述
這裏是因爲在別人手裏拿到的工程文件的hex2000和自己的路徑不一樣導致的,這個時候我們需要點開
在這裏插入圖片描述
注意是右鍵然後選擇一下才能點開。
然後我們看路徑。

這是別人的路徑,需要找到自己的路徑,
自己的路徑在自己安裝ti的目錄下,我的依次是
C:\ti\ccsv7\tools\compiler\ti_cgt_c2000_6.1.3.STS\bin
注意這裏的compiler版本需要詢問一下別人該工程文件用的是哪個版本的compiler。
然後修改後就是
在這裏插入圖片描述
然後再次編譯就ok了。
編輯完了纔看到原來7和5是一樣的問題,因爲無法找到路徑,所以無法生存了hex文件,這都是一個原因導致的不同error。

8.通信板起不來;
問題,app代碼download進去之後,BootLoader程序download進去之後,通信面板LCD仍然起不來。
解決措施:
記錄一下app代碼的flash是512kb;
然後sct文件:

; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x00018000 0x00040000  {    ; load region size_region
	VECTOR 0x00018000
	{
	  vector_table.o (+RO)
	}

	ROM_EXEC +0
	{
	    *.o (+RO)
	}
	
	STACK 0x10007800 0x800
	{
		startup_LPC17xx.o (+RW,+ZI)
	}
  	RW_IRAM1 0x10000000 0x00008000  {  ; RW data
   	.ANY (+RW +ZI)
  }
}

BootLoader文件是flash選擇256kb,然後sct文件是:

; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x00000000 0x00040000  {    ; load region size_region
  ER_IROM1 0x00000000 0x00040000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x10000000 0x00007800  {  ; RW data
   .ANY (+RW +ZI)
  }
}

問題解決。
(fuck,download了一下午,硬生生的把科學問題搞成了玄學問題。)
這裏記錄一下,bootloader文件是引導文件,所以從00開始的,然後會引導app文件執行。如果這裏app的act文件的18改成00,則可以直接執行app文件,當debug的時候可以這樣,省掉一些步驟。完了之後再改回來。
如下:

; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x00000000 0x00040000  {    ; load region size_region
	VECTOR 0x00000000
	{
	  vector_table.o (+RO)
	}

	ROM_EXEC +0
	{
	    *.o (+RO)
	}
	
	STACK 0x10007800 0x800
	{
		startup_LPC17xx.o (+RW,+ZI)
	}
  	RW_IRAM1 0x10000000 0x00008000  {  ; RW data
   	.ANY (+RW +ZI)
  }
}


9.升級完的過程中卡住了,然後重啓之後顯示屏白屏了,起不來。
問題:如題。
原因:這是因爲升級的時候用的是臺灣的金士頓8G的卡升級的,所以才導致這樣,具體原因不詳。
解決措施:升級儘可能的用4G的卡或者日本的卡,對於已經出現藍屏的LCD,

10.升級文件hex以及bin文件生成方法:
這個在OneNote裏也有記錄。
在這裏插入圖片描述

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