原创 ARM指令的條件碼
EQ 相等 NE 不相等 CS 進位設置 CC 進位清除 MI 負數 PL 非負數 VS 上溢出 VC 沒有上溢出 HI 無符號數大於 LS 無符號數小於等於 GE 帶符號數
原创 C語言與彙編語言相互調用
在使用C語言時,要用到和彙編語言的混合編程。若彙編代碼較爲簡潔,則可使用直接內嵌彙編的方法;否則要將彙編程序以文件的形式加入到項目中,按照ATPCS(ARM/Thumb過程調用標準,ARM/Thumb Procedure Call
原创 位置無關碼
1 位置無關代碼及程序設計方法 1.1 基本概念與實現原理 應用程序必須經過編譯、彙編和鏈接後才變成可執行文件,在鏈接時,要對所有目標文件進行重定位(relocation),建立符號引用規則,同時爲變量、函數等分配運行地址。當程序
原创 ARM指令裏幾個特殊符號
特殊符號 對應指令 含義 = DCB 分配一片連續的字節存儲單元並用指定的數據初始化 & DCD 分配一片連續
原创 ARM常用指令
---------------------------------ARM存儲器訪問指令 1.Load/Store指令 LDR R1,[R0,#0x12] ;將R0+0x12地址處的數據讀出,保存到R1中(R0的值不變) LDR R1,
原创 C與彙編互調實例
C語言調用匯編實例: extern void strcopy(char *d, const char *s); // 使用關鍵詞extern聲明strcopy extern void strcopy(char *d,const cha
原创 vsprintf函數和va_list用法詳解
void UART1_Printf(char *fmt,...) { va_list ap; char string[128]; va_start(ap, fmt); vsprintf(string, fmt, ap);
原创 ARM鏈接腳本
鏈接定位是系統級軟件開發過程中必不可少的一部分,嵌入式軟件開發均屬於系統級開發,絕大部分嵌入式軟件都涉及到鏈接定位腳本文件;鏈接定位腳本使得我們的目標代碼組織更加靈活。 1. 鏈接定位腳本文件說明 鏈接定位過程一般由鏈接器根據鏈接定位腳本