原创 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. 鏈接定位腳本文件說明 鏈接定位過程一般由鏈接器根據鏈接定位腳本