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

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


咨詢
建站咨詢
