新聞中心
CCS是Code Composer Studio的簡(jiǎn)稱,是德州儀器(Texas Instruments)針對(duì)嵌入式系統(tǒng)開(kāi)發(fā)的一款綜合性開(kāi)發(fā)工具。它支持多種硬件平臺(tái),包括TI的MSP430、MSP432等MCU,以及Arm Cortex-M系列的MCU等。在Linux系統(tǒng)中使用CCS,除了可以讓我們更加方便地進(jìn)行嵌入式開(kāi)發(fā),還可以充分利用Linux環(huán)境的優(yōu)勢(shì),比如更高效的編譯環(huán)境和更加豐富的開(kāi)發(fā)工具等。下面我們來(lái)詳細(xì)了解一下如何在Linux中通過(guò)CCS進(jìn)行嵌入式開(kāi)發(fā)。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了德清免費(fèi)建站歡迎大家使用!
一、安裝CCS
在Linux系統(tǒng)中安裝CCS需要先下載對(duì)應(yīng)的安裝包,一般可以在TI官方網(wǎng)站上進(jìn)行下載。下載完畢后,運(yùn)行安裝程序即可。
需要注意的是,CCS是基于Java開(kāi)發(fā)的,因此在安裝前需要確保已經(jīng)安裝了Java運(yùn)行環(huán)境。
二、創(chuàng)建工程
在安裝好CCS之后,我們需要首先創(chuàng)建一個(gè)工程項(xiàng)目。在CCS中創(chuàng)建工程很簡(jiǎn)單,只需要按照下面的步驟即可。
1. 選擇“File” -> “New” -> “CCS Project”。
2. 在彈出的窗口中,輸入工程的名稱和路徑等信息。
3. 選擇運(yùn)行CCS的CPU類型和基礎(chǔ)系統(tǒng)配置等。
4. 點(diǎn)擊“Finish”完成工程創(chuàng)建。
三、編寫程序
在創(chuàng)建完工程之后,就可以開(kāi)始編寫程序代碼了。CCS支持多種編程語(yǔ)言,例如C、C++、Assembly等。下面以C語(yǔ)言為例,介紹一下程序的編寫過(guò)程。
1. 在工程目錄下創(chuàng)建一個(gè)C語(yǔ)言源文件。例如,在“src”目錄下創(chuàng)建一個(gè)“mn.c”的C語(yǔ)言源文件。
2. 在源文件中編寫程序代碼。例如,下面是一個(gè)簡(jiǎn)單的C語(yǔ)言程序示例:
“`
#include
int mn(void)
{
printf(“Hello, world!\n”);
return 0;
}
“`
3. 在程序代碼中添加頭文件、函數(shù)、變量等定義。例如,下面是一個(gè)添加頭文件后的程序示例:
“`
#include
int mn(void)
{
int i;
for(i=0;i
printf(“i=%d\n”,i);
}
return 0;
}
“`
四、編譯程序
在完成程序的編寫之后,可以通過(guò)CCS進(jìn)行程序的編譯。編譯過(guò)程可以生成目標(biāo)程序的二進(jìn)制文件,方便我們進(jìn)行下載和調(diào)試等操作。
1. 在工程目錄下,右鍵單擊工程名稱,并選擇“Build”選項(xiàng)。
2. 在編譯過(guò)程中,CCS會(huì)輸出編譯信息和錯(cuò)誤信息等。
3. 編譯完成后,在工程目錄下會(huì)生成一個(gè)與工程名稱相同的二進(jìn)制可執(zhí)行文件。
五、下載程序
編譯完成后,可以通過(guò)CCS將程序下載到硬件上進(jìn)行實(shí)際測(cè)試。在下載之前,需要設(shè)置一些參數(shù),例如下載設(shè)備的類型、端口號(hào)等。
1. 在“File” -> “Target Configuration”中,選擇下載設(shè)備的類型和端口等信息。
2. 在創(chuàng)建工程時(shí)選擇下載方式,即 SWD 模式或 JTAG 模式。
3. 連接硬件設(shè)備并打開(kāi)設(shè)備的電源。
4. 在CCS工具欄上選擇“Debug”模式。
5. 選擇目標(biāo)設(shè)備和燒錄程序,并點(diǎn)擊“Start Debugging”。
六、調(diào)試程序
在程序下載到硬件設(shè)備上之后,可以通過(guò)CCS對(duì)程序進(jìn)行調(diào)試和分析。調(diào)試過(guò)程可以通過(guò)單步執(zhí)行、斷點(diǎn)等方式進(jìn)行。例如,我們可以在程序中添加一些斷點(diǎn),以便在執(zhí)行程序時(shí)暫停執(zhí)行,從而實(shí)現(xiàn)對(duì)變量、寄存器等內(nèi)容的查看和調(diào)試。
1. 在程序代碼中選擇需要添加斷點(diǎn)的行,右鍵單擊,選擇“Toggle Breakpoint”。
2. 進(jìn)入調(diào)試模式,并開(kāi)始執(zhí)行程序。
3. 當(dāng)程序執(zhí)行到斷點(diǎn)位置時(shí),程序會(huì)暫停執(zhí)行,我們可以查看調(diào)試器中的相關(guān)信息,包括在程序執(zhí)行過(guò)程中的變量值、寄存器信息等。
七、
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
Linux Shell 腳本編程更佳實(shí)踐
IT路邊社
前言
與其它的編碼規(guī)范一樣,這里所討論的不僅僅伏燃是編碼格式美不美觀的問(wèn)題, 同時(shí)也討論一些約定及編碼標(biāo)準(zhǔn)。這份文檔主要側(cè)重于我們所普遍遵循的規(guī)則,對(duì)于那些不是明確強(qiáng)制要求的,我們盡量避免提供意見(jiàn)。
編碼規(guī)范對(duì)于程序員而言尤為重要,有以下幾個(gè)原因:
本文檔中的準(zhǔn)則致力于更大限度達(dá)到以下原則:
盡管本文檔涵蓋了許多基礎(chǔ)知識(shí),但應(yīng)注意的是,沒(méi)有編碼規(guī)范可以為我們回答所有問(wèn)題,開(kāi)發(fā)人員始終需要再編寫完代碼后,對(duì)上缺啟虛述原則做出正確的判斷。
注
:未明確指明的則默認(rèn)為必須(Mandatory)
主要參考如下文檔:
僅建議Shell用作相對(duì)簡(jiǎn)單的實(shí)用工具或者包裝腳本。因此單個(gè)shell腳本內(nèi)容不宜太過(guò)復(fù)雜。
在選擇何時(shí)使用shell腳本時(shí)時(shí)應(yīng)遵循以下原則:
可執(zhí)行文件不建議有擴(kuò)展名,庫(kù)文件必須使用 .sh 作為擴(kuò)展名,且應(yīng)是不可執(zhí)行的。
執(zhí)行一個(gè)程序時(shí),無(wú)需知道其編寫語(yǔ)言,且shell腳本并不要求具有擴(kuò)展名,所以更傾向可執(zhí)行文件沒(méi)有擴(kuò)展名。
而庫(kù)文件知道其編寫語(yǔ)言十分重要,使用 .sh 作為特定語(yǔ)言后綴的擴(kuò)展名,可以和其他語(yǔ)言編寫的庫(kù)文件加以區(qū)分。
文件名要求全部小寫, 可以包含下劃線 _ 或連字符 – , 建議可執(zhí)行文件使用連字符,庫(kù)文件使用下劃線。
正例:
反例:
源文件編碼格式為UTF-8。避免不同操作系統(tǒng)對(duì)文件換行處理的方式不同,一律使用 LF 。
每行最多不超過(guò)120個(gè)字符。每行代碼更大長(zhǎng)度限制的根本原因是過(guò)長(zhǎng)的行會(huì)導(dǎo)致閱讀障礙,使得縮進(jìn)失效。
除了旁缺以下兩種情況例外:
如出現(xiàn)長(zhǎng)度必須超過(guò)120個(gè)字符的字符串,應(yīng)盡量使用here document或者嵌入的換行符等合適的方法使其變短。
示例:
除了在行結(jié)束使用換行符,空格是源文件中唯一允許出現(xiàn)的空白字符。
對(duì)從來(lái)沒(méi)有用到的或者被注釋的方法、變量等要堅(jiān)決從代碼中清理出去,避免過(guò)多垃圾造成干擾。
Bash 是唯一被允許使用的可執(zhí)行腳本shell。
可執(zhí)行文件必須以 #!/bin/bash 開(kāi)始。請(qǐng)使用 set 來(lái)設(shè)置shell的選項(xiàng),使得用 bash echo “Process $: Done making $$$.”
# 示例7:命令參數(shù)及路徑不需要引號(hào) grep -li Hugo /dev/ “$1”
# 示例8:常規(guī)變量用雙引號(hào),ccs可能為空的特殊情況可不用引號(hào) git send-email –to “${reviewers}” ${ccs:+”–cc” “${ccs}”}
# 示例9:正則用單引號(hào),$1可能為空的特殊情況可不用引號(hào) grep -cP ‘(pecial||?characters*) ${1:+”$1″}
# 示例10:位置參數(shù)傳遞推薦帶引號(hào)的”$@”,所有參數(shù)作為單字符串傳遞用帶引號(hào)的”$*” # content of t.sh func_t { echo num: $# echo args: 1:$1 2:$2 3:$3 }
func_t “$@” func_t “$*” # 當(dāng)執(zhí)行 ./t.sh a b c 時(shí)輸出如下: num: 3 args: 1:a 2:b 3:c num: 1 args: 1:a b c 2: 3:
使用 $(command) 而不是反引號(hào)。
因反引號(hào)如果要嵌套則要求用反斜杠轉(zhuǎn)義內(nèi)部的反引號(hào)。而 $(command) 形式的嵌套無(wú)需轉(zhuǎn)義,且可讀性更高。
正例:
反例:
條件測(cè)試
使用 > ,而不是
因?yàn)樵?> 之間不會(huì)出現(xiàn)路徑擴(kuò)展或單詞切分,所以使用 > 能夠減少犯錯(cuò)。且 > 支持正則表達(dá)式匹配,而 不支持。參考以下示例:
盡可能使用變量引用,而非字符串過(guò)濾。
Bash可以很好的處理空字符串測(cè)試,請(qǐng)使用空/非空字符串測(cè)試方法,而不是過(guò)濾字符,讓代碼具有更高的可讀性。正例:
反例:
正例:
反例:
正例:
反例:
文件名擴(kuò)展
當(dāng)進(jìn)行文件名的通配符擴(kuò)展時(shí),請(qǐng)指定明確的路徑。
當(dāng)目錄中有特殊文件名如以 – 開(kāi)頭的文件時(shí),使用帶路徑的擴(kuò)展通配符 ./* 比不帶路徑的 * 要安全很多。
應(yīng)該避免使用eval。
Eval在用于分配變量時(shí)會(huì)修改輸入內(nèi)容,但設(shè)置變量的同時(shí)并不能檢查這些變量是什么。反例:
請(qǐng)使用進(jìn)程替換或者for循環(huán),而不是通過(guò)管道連接while循環(huán)。
這是因?yàn)樵诠艿乐蟮膚hile循環(huán)中,命令是在一個(gè)子shell中運(yùn)行的,因此對(duì)變量的修改是不能傳遞給父shell的。
這種管道連接while循環(huán)中的隱式子shell使得bug定位非常困難。反例:
如果你確定輸入中不包含空格或者其他特殊符號(hào)(通常不是來(lái)自用戶輸入),則可以用for循環(huán)代替。例如:
使用進(jìn)程替換可實(shí)現(xiàn)重定向輸出,但是請(qǐng)將命令放入顯式子 shell,而非 while 循環(huán)創(chuàng)建的隱式子 shell。例如:
總是檢查返回值,且提供有用的返回值。
對(duì)于非管道命令,使用 $? 或直接通過(guò) if 語(yǔ)句來(lái)檢查以保持其簡(jiǎn)潔。
例如:
當(dāng)內(nèi)建命令可以完成相同的任務(wù)時(shí),在shell內(nèi)建命令和調(diào)用外部命令之間,應(yīng)盡量選擇內(nèi)建命令。
因內(nèi)建命令相比外部命令而言會(huì)產(chǎn)生更少的依賴,且多數(shù)情況調(diào)用內(nèi)建命令比調(diào)用外部命令可以獲得更好的性能(通常外部命令會(huì)產(chǎn)生額外的進(jìn)程開(kāi)銷)。
正例:
反例:
加載外部庫(kù)文件不建議用使用.,建議使用source,已提升可閱讀性。正例:
反例:
除非必要情況,盡量使用單個(gè)命令及其參數(shù)組合來(lái)完成一項(xiàng)任務(wù),而非多個(gè)命令加上管道的不必要組合。常見(jiàn)的不建議的用法例如:cat和grep連用過(guò)濾字符串; cat和wc連用統(tǒng)計(jì)行數(shù); grep和wc連用統(tǒng)計(jì)行數(shù)等。
正例:
除特殊情況外,幾乎所有函數(shù)都不應(yīng)該使用exit直接退出腳本,而應(yīng)該使用return進(jìn)行返回,以便后續(xù)邏輯中可以對(duì)錯(cuò)誤進(jìn)行處理。正例:
反例:
推薦以下工具幫助我們進(jìn)行代碼的規(guī)范:
原文鏈接:
獲取更多的面試題、腳本等運(yùn)維資料點(diǎn)擊: 運(yùn)維知識(shí)社區(qū) 獲取
腳本之—短信轟炸機(jī)
腳本之—QQ微信轟炸機(jī)
ansible—一鍵搭建redis5.0.5集群
elk7.9真集群docker部署文檔
全球最全loki部署及配置文檔
最強(qiáng)安全加固腳本2.0
ccs怎么看堆棧夠不夠用
1)程序中有兩個(gè)這樣的char數(shù)組,算下來(lái),一個(gè)char是一個(gè)字節(jié),兩個(gè)2023*2023的數(shù)組便是8MB的空間。
2)而使用ulimit -a查看Linux系統(tǒng)中設(shè)置的棧空間大小stack size,8192(單位KB),即8MB,,也可用ulimit -s可以只看??臻g大小??梢?jiàn)??臻g已經(jīng)不夠用了困脊,在調(diào)用該函數(shù)的時(shí)候,在??臻g中為該函數(shù)開(kāi)辟汪逗滲空間,因?yàn)橐呀?jīng)開(kāi)辟不出這么大的空間了,于是段錯(cuò)誤了,程序目前尚未進(jìn)入該函數(shù),因?yàn)樵谘b載該函數(shù)的時(shí)候掛掉了。所以即使給該函數(shù)之一指叢行加輸出信息,也輸出不了。
3)使用ulimit -s 10240修改棧大小為10M,重新運(yùn)行程序,程序正常運(yùn)行無(wú)段錯(cuò)誤
4)由此可證,的確是系統(tǒng)??臻g大小太小導(dǎo)致程序段錯(cuò)誤,當(dāng)然如果改成new malloc等方式在堆區(qū)申請(qǐng)空間則不會(huì)段錯(cuò)誤。
linux啟動(dòng)ccs命令的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux啟動(dòng)ccs命令,如何在Linux中通過(guò)CCS啟動(dòng)?,Linux Shell 腳本編程更佳實(shí)踐,ccs怎么看堆棧夠不夠用的信息別忘了在本站進(jìn)行查找喔。
香港云服務(wù)器機(jī)房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!
當(dāng)前標(biāo)題:如何在Linux中通過(guò)CCS啟動(dòng)?(linux啟動(dòng)ccs命令)
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/dpgchsi.html


咨詢
建站咨詢
