gcc規定了乙個內聯彙編的語法,不同硬體平台上的gcc內聯彙編幾乎都是這樣的:
asm(
彙編指令列表
:輸出運算子列表
:輸入運算子列表
:被更改的資源列表
};
在gcc中插入彙編**,需要以asm關鍵字開頭,中間四個部分用」:」分隔,如果你嵌入的彙編沒有輸入輸出,或者更改資源,後面三項是可以省略的。
表1 gcc4內聯彙編操作符節選
操作符含義r
通用暫存器r0~r15
m乙個有效記憶體位址
l資料處理指令中的立即數
x被修飾的操作符只能作為輸出
表2 gcc4中內聯彙編修飾符
修飾符說明無
被修飾的操作符是唯讀的
=被修飾的操作符只寫
+被修飾的操作符具有可讀寫的屬性
&被修飾的操作符只能作為輸出
uint32_t __get_primask(void)
void __set_primask(uint32_t primask)
uint32_t entercritical(void)
void exitcritical(uint32_t status)
284 S32K144的RTC時鐘修改
完整的s32k144的學習彙總如下 繼續s32k144的學習,今天繼續學習rtc時鐘的功能。昨天簡單讓rtc時鐘執行起來了,今天看看如何進行時鐘的修改。先憑藉感覺直接配置下sdk試試,不行我再看文件。首先,我覺得這個地方似乎是應該勾選,這樣我應該隨時都可以有許可權去修改這個時鐘資訊。接下來,生成。之...
329 S32K144 CAN波特率修改
完整的s32k144的學習彙總如下 繼續s32k144的學習,今天做乙個簡單一些的嘗試,修改can的波特率。看了前面的can的簡單實現,我感覺這個應該很容易。常見的can的波特率配置有三種,250k 500k以及1000k。在使用的時候,一般分別對應的場景需求有j1939 uds以及bootload...
328 S32K144獲取CAN的預設配置
完整的s32k144的學習彙總如下 繼續s32k144的學習探索,這次看看can預設配置獲取功能。這個函式之前在看文件的時候是看到過的,但是一直沒在意。主要原因可能是因為我並不是很清楚這個介面可以做什麼用。難道是用於反初始化之類的操作?看著相應的資訊,其實也是很熟悉,這部分我們開啟s32ds的sdk...