日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CCS的一些问题(转帖)

發布時間:2023/12/15 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CCS的一些问题(转帖) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

CCS的一些問題(轉帖)
CCS版本:V3.1

1.run和animate的區別

如果沒有斷點的話,這兩個沒區別.
如果有斷點,那么run的時候到斷點會停止,直到再次按run或者F5才繼續執行.
而Animate到斷點的時候,會停一小會,將所有窗口刷新一遍,然后就繼續執行

一般就是在要看數據變化的時候,先把曲線畫出來,然后在改變數據的循環里面設個斷點,然后用animate,就能看到圖片動態改變了,可以參考Help->tutorial里面的"Code Composer Studio? IDE"->"Using Debug Tools"這一個教程

2.Probe Point 和Breakpoints的區別和聯系

共性:他們都會暫停程序運行

區別:

1.Probe Point暫停程序,執行一個設定的任務(如File I/O),然后繼續執行程序.而BreakPoint暫停后必須手動繼續(當用run的時候)
2.BreakPoints會刷新所有窗口,而ProbePoint不會
3.Probe Point可以執行一些任務(如File I/O),而BreakPoints就是純粹的停止.

3.阻塞(blocked)和中斷(interrupt)的區別和聯系

共性:他們都能停止一個tsk(任務,具體見我的另一篇文章:關于tsk和mbx)的執行

區別:

1.只有tsk(任務)能被阻塞,而swi(軟中斷)和hwi(硬中斷)不能阻塞,只能中斷

2.停止的原因不一樣,阻塞是在某些條件不滿足的時候停止tsk,中斷是因為有高優先級的事情要做而停止

3.恢復運行的條件不一樣,阻塞是要等到原來不滿足的條件滿足后才能繼續,而中斷是要等高優先級的任務返回后才繼續執行.

4.阻塞改變tsk的任務隊列,而中斷一個tsk不會改變tsk的任務隊列.

舉個現實的例子:
如果你在寫作業,寫著寫著,碰到一道很難的題,你百思不得其解,這個時候寫作業的這個tsk就被阻塞了,只有等到你想出來這道題怎么做,才能繼續做下去.

另外一種情況,還是在寫作業,突然門鈴響了,你必須去開門,那寫作業這個tsk就被中斷了,你開完門就能回來繼續寫作業.

4.LOG_printf和printf的區別和聯系

共性:都是用于輸出一些內容,一般用于顯示一些調試信息,而且可以格式化輸出,比如用'%d'輸出整數

區別:

1.輸出目標不同,printf輸出到output窗口,而LOG_printf輸出到BIOS的log窗口

2.匯編指令條數不同,printf需要上萬條匯編指令,而LOG_printf只要30多條匯編指令,因此LOG_printf的運行速度比printf要快的多,一般在實時系統中,都使用LOG_printf來輸出,這樣對系統的實時性影響才不大

3.參數個數不同,printf后面的參數個數可以有很多個(具體多少個沒測試過),而LOG_printf后面最多只能有4個參數,第一個是寫入的地址,第二個是字符串,后面最多加上兩個格式化輸出的數據,這兩個數據還必須是整型,或者指針,或者常量字符串

4.可以輸出的格式不同,printf有很多的格式,而LOG_printf只有有限的幾種.(%d整型,%x無符號16進制數,%o無符號8進制數,%s常量字符串,%p指針)

5.LOG_printf輸出的長度受設定的buffer大小限制,如果超出buffer大小,根據設置的不同,可以是停止輸出,或者覆蓋原來的內容

6.LOG_printf的優先級比較低,可能是在KNL層,只有系統比較空閑的時候,才會輸出,而printf是必然會輸出.(比如在一個i=1到100的循環中,用printf就會輸出100個數,而用LOG_printf就只會輸出一部分數,而且在沒有碰到斷點的時候,根本不會輸出,因為他的優先級相當低,只有在走到斷點的時候,系統才允許他執行.)

5.設置tab的寬度

1.打開"Option -> Editor -> language"
2.在左邊的File Type里面選擇要修改的擴展名(CCS中每種不同擴展名的文件都能設置不同的tab寬度,而不是象一般的代碼編輯器,可以全局設置)
3.在右邊頂部選擇"Tabs/Indenting"選項卡
4.在"Tab Columns"下面的框中輸入"3 5"(默認值是5 9,注意兩個數值中間有空格)
5.點擊OK按鈕

解釋一下"3 5"的意義,第一個數字等于在一行的最開頭按Tab鍵時跳過的列數加1,第二個數減去第一個數的結果,等于除去每行最開頭外的Tab的寬度.
設置成"3 5"表示如果在每行開頭按Tab,縮進3-1=2列,而其它地方的縮進是5-3=2列,也就是無論什么地方Tab鍵的寬度都是2列.

個人覺得,CCS的這個設置Tab鍵寬度挺有意思的.

總結

以上是生活随笔為你收集整理的CCS的一些问题(转帖)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。