最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

(基于ARM的)微機原理與接口技術筆記(4)

2021-10-04 12:48 作者:會整活的劍人  | 我要投稿

(基于ARM的)微機原理與接口技術筆記(4)

物理上37個register 邏輯上R0-R15

r13 棧指針(SP)

r15 程序指針(PC)

ARM狀態(tài):32bit寬指令

Thumb狀態(tài):16bit指令

r14 鏈接寄存器 儲存函數返回等.

cpsr 程序狀態(tài)寄存器 當前cpu的模式 狀態(tài)

低5位[4:0]模式[5] ARM/Thumb [6]禁止快中斷位 [7]禁止中斷位

[31:28]N(負數結果)Z(零結果)C(進位/借位)V(溢出)

register是用觸發(fā)器實現(xiàn)的 成本高 小容量

memory是MOS+電容實現(xiàn)的 成本小 大容量

IO設備的register(配置寄存器)和cpu的不太一樣(且聽后面幾回分解).

ARM7TDMI硬件結構

這個圖是只有核的,如果要用的話需要單配外設

ARM7TDMI核

芯片廠子沒有這樣做的,都要附帶外設.

jtag接口和結構,可以用于偷窺寄存器和內存中

帶jtag仿真的ARM7TDMI示意圖

計算機-(usb)-jlink-(jtag)-單片機

處理器的時序

cpu的時序是CPU在執(zhí)行指時所需控制信號的時間順序

(上升沿,下降沿,寬度,周期,....)

  • 時鐘周期 CPU工作時間的最小單位 完成任何操作都需要整數個時鐘周期

  • 指令周期 一條指令從內存中取出到執(zhí)行完畢用時

  • 總線周期 把CPU通過總線與內存 外設 內部部件之間進行一次數據交換操作需要的時間.

處理器的選型問題

1.內核

2.工作頻率

3.片內存儲器與存儲器擴展接口

4.封裝

5.片內功能模塊

飛控或者平衡車可以用Cortex-M0 CV等操作建議高端核Cortex-M7核

實驗用高端核 產品需要考慮,同樣性能盡量壓成本.

ST R710F處理器

R71xF 類芯片 現(xiàn)在能買到 最小系統(tǒng)開發(fā)板買不到

32位 20年前的高性能,低功耗

ARM指令集

ARM7TDMI ARM7TDMI-S 有ARM指令集(32位)和Thumb指令集(16位)

ARM和Thumb可以切換

例如下面的匯編

mov r1,r2
sub r0,r1,r2
ands r1,r1,r2,lsl r3
stmia r0!,{r2-r7,r12}

arm匯編的格式

<opcode 助記符> {<cond 執(zhí)行條件,可選>} {S 是否影響CPSR,可選} <rd 目標寄存器>,<Rn 操作數1的寄存器>,{<operand2 操作數2>}

匯編語言的語句是不區(qū)分大小寫的,assembler會自動識別這些語句,但是匯編程序中用戶定義的變量標號等,將區(qū)分其大小寫,編程時要注意這些區(qū)別.以免出錯.

操作:

  • 數據處理

    • 算術運算: add adc sub sbc rsb rsc

    • 邏輯運算: and orr eor bic

    • 數據傳送: mov mvn

  • 存儲器訪問: ldr str ldm sdm

  • 比較: cmp cmn tst teq

  • 分支跳轉: b bl bx

  • 其他

條件碼作為后綴 一般可以不寫,默認AS

if(a>b)a++;
else b++;

對應的arm匯編(假設a位于r0,b位于r1)

cmp r0,r1
addhi r0,r0,#1
addls r1,r1,#1

cmp改變psr addhi加s會影響psr

例1:

if(a==0)func(1);

對應arm匯編

cmp r0,#0
moveq r0,#1
bleq func

例2:

if(a==4||a>=10)x=0;

對應arm匯編(假設a在r0 x在r1)

cmp r0,#4
cmpne r0,#10
moveq r1,#0

p.s. 開全局變量會慢.

第二操作數可以有以下形式:

  • 寄存器

  • 移位值(5位unsigned) 另一register的lobyte

  • 立即數(8位)

寄存器方式下 操作數即為寄存器的數值

sub r1,r1,r2
addeq r2,r4,r5

寄存器移位方式下 移位結果為操作數 Rm值不變

邏輯移位 左移*2 右移/2

算術移位 符號不變

循環(huán)移位 (擴展的寄存器方式會影響C標志位)

add r1,r1,r1,lsl #3
sub r1,r1,r2,lsr r3

立即數:8位二進制循環(huán)移位偶數位可以得到的

第1行: r1=r1+r1*8

第2行: r1=r1-(r2右移r3位)

裝載32位常數:

ldr rd,=#const

下載pdf版鏈接:


(基于ARM的)微機原理與接口技術筆記(4)的評論 (共 條)

分享到微博請遵守國家法律
永兴县| 苏尼特左旗| 丹江口市| 武清区| 淮安市| 株洲县| 苗栗市| 凤城市| 泉州市| 绥棱县| 桐庐县| 砀山县| 临城县| 专栏| 丹棱县| 石阡县| 孝昌县| 湖南省| 丘北县| 娄底市| 五指山市| 辉县市| 铜山县| 枣强县| 旬邑县| 蓝山县| 新野县| 汝南县| 洞头县| 洛浦县| 新宁县| 东港市| 家居| 成都市| 阿鲁科尔沁旗| 林芝县| 铜山县| 巴里| 长武县| 中方县| 永济市|