iarewarm中段字尾含義
字尾段型別
含義ac
const
絕對位址定位常數
andata
用關鍵字__no_init宣告的絕對位址定位資料
cconst常數i
data
初始化值為非0的資料
idconst
上述資料的初始式
ndata
未初始化的資料
zdata
初始化值為0的資料
rom用於儲存const和code段,而ram用於儲存datas段。
code段型別:rom 中的執行**
const段型別:rom中的資料
data段型別:ram 中的資料
常用的段說明:
段名功 能說 明
段型別屬性
intvec
儲存reset 和異常向量,含跳轉到cstartup 或中斷服務程式的指令。必須在0x00-0x3f 位址範圍內
code
唯讀icode
儲存啟動**,位於能被intvec 中的轉移指令達到的前32mb 位元組內。
code
唯讀difunct
包含指向c++建構模組的指標。該模組在呼叫main 之前由cstartup 執行。
code
唯讀switab
儲存軟體中斷向量表
code
唯讀code
儲存程式**,可以在rom 中執行。
code
唯讀code_id
永久性儲存宣告為_ramfunc 的程式**。這些**初始化時從code_id拷貝到code_i 中(ram),然後在ram 中執行。
const
唯讀inittab
儲存需要在啟動時初始化的段位址和段長度**。
const
唯讀data_id
儲存data_i 段中變數的初值,這些值在系統初始化時由cstartup 從data_id 拷貝到data_i。
const
唯讀data_c
儲存常數資料,包括文字字串
const
唯讀checksum
儲存段的校驗和
const
唯讀code_i
上電後儲存宣告為_ramfunc的程式**,掉電後丟失。初始化時從code_id(rom)拷貝到code_i中,然後在ram中執行。
data
讀/寫data_i
儲存宣告為非零初值的靜態全域性變數,其初值開始在data_id中,系統初始化時由cstartup從data_id 拷貝到data_i。
data
讀/寫data_z
儲存宣告初值為零或沒有宣告初值的靜態全域性變數
data
讀/寫data_n
儲存非易失儲存器中,用_no_init 關鍵字宣告的靜態全域性變數
data
讀/寫cstack
c/c++內部資料堆疊(使用者模式)
data
讀/寫svc_stack
作業系統堆疊(管理模式,用於具有特權的作業系統任務)
data
讀/寫abt_stack
資料訪問中止模式堆疊(用於虛擬儲存器及儲存器保護)
data
讀/寫und_stack
未定義指令中止模式堆疊(支援硬體協處理器軟體**)
data
讀/寫fiq_stack
快中斷模式堆疊(用於高速資料傳輸或通道處理)
data
讀/寫irq_stack
中斷模式堆疊(用於通用中斷處理)
data
讀/寫heap
堆(heap)是c\c++中為malloc 和 free 或new 和delete 保留的動態分配儲存空間。
data
讀/寫
iar ewarm中段定位引數
引數含義
ccpu型別
d定義檔案後面要使用的引數,例如說明始末位址或段大小
z以連續方式定位段
p以壓縮方式定位段
q自動完成段初始化複製
-d
-dsymbol=value
作用:使用
-d選項可以定義一些純粹的符號,一般用於宣告常數。
引數:symbol是未在其它地方定義過的外部符號,value是symbol所代表的值。例如:
-d_bank_len=0x800
-d_bank_start=0x1800
-d_bank_step=0x10000
-d_bank_num=0x40
就定義了2個標識了rom起始和結束位址的符號,這樣以後關於rom位址的配置都可以直接使用這2個符號,使得配置檔案的可讀性增強。
在//前面必需有空格
/*前面可有可無空格
=前後都不能有空格在
_bank_step緊挨著-d
-z
-z[@][(split-)type]segments[=|#]range[, range]…
作用:使用
-z命令的目的是規定
segments
在儲存空間中佔據的位置和區間。如果鏈結器發現某個segment沒有使用-z,-b或者-p中的任何乙個命令進行定義,則會報錯。
引數:@ 使用@引數,表示為segments分配空間時不考慮任何已經被使用的位址空間。這適用於當某些segments的位址空間需要發生重疊的情形。【可選】
type 引數type規定了segments的儲存型別,預設為untyped。表1列舉了iar的arm c/c++編譯器所支援的segments型別。【可選】
segments:引數segments列出了參與鏈結的乙個或多個segment,中間可用逗號分隔。,這些segments在儲存空間中的順序和被列出的先後順序一致。在segment名後面新增『+nnnn』,可以讓xlink為該segment所分配的空間增加nnnn位元組。
= | #;規定了segments在儲存空間中如何分配,其中」=「從指定範圍的起始處開始為segments分配空間,而」#「從指定範圍的結尾處開始為segments分配空間。如果這兩個引數都沒有出現,則segments會被分配在當前最後乙個有確定鏈結位址的segment後面;如果當前沒有任何segment被鏈結,則被分配在0位址。
-z(code)makecode_const=0xff0000-0xff00ff
-z(xdata)echo_buf=0xa4400:+0x2000-p
-p(code)bt_on_seg,bt_on_const,rf_seg=[_bank_start:+_bank_len]*_bank_num+_bank_step
用,分割相同的段
-q -qsegment=initializer_segment
作用:自動設定
segment
的拷貝初始化。鏈結器會產生乙個新的initializer_segment(如code_id),其內容與segment(如code_i)完全一致。相關的符號表和除錯資訊都會和segment相關聯(如code_i)。initializer_segment的內容(通常在rom中)必須在初始化階段被複製到segment(通常在ram中)。
-c
-cprocessor
作用:規定目標處理器的型別。如-carm。
MySQL聯結器原理 mysql 聯結器
mysql 的聯結器是msyql server層的第乙個模組。當我們用mysql 客戶端來連線mysql伺服器的時候,處理這個連線請求的就是聯結器模組。mysql客戶端和伺服器端的連線使用的是tcp協議,在完成tcp握手之後,聯結器開始進行身份認證。如果使用者名稱或密碼不對,那麼聯結器會丟擲乙個 a...
如何區別FFC聯結器和FPC聯結器
接器領域中,ffc聯結器和fpc聯結器常常讓人混淆。雖然兩者都是柔性電纜聯結器,但是ffc聯結器以及fpc聯結器還是有一定程度上的區別。柔性扁平電纜 flexible flat cable 聯結器,fpc是柔性印製線路 flexible print circuit 兩者的製造上來講,他們線路形成的方...
聯結器的作用
聯結器又稱接外掛程式,主要是在電子產品 電力裝置中提供方便的電氣插拔式連線,廣泛地應用於電子裝置當中,使得電子產品的生產 維修效率得以極大提高。由於大量採用插拔式連線,其連線的可靠性 接觸點電阻的大小對於產品的質量來說就越來越重要,因此必須對所採用的聯結器的效能進行全面的了解,以便合理正確地使用聯結...