SMLAL(Signed Multiply Accumulate Long)為64位有符號(hào)長(zhǎng)乘法指令。指令將Rm和Rs中的值做有符號(hào)數(shù)相乘,64位乘積與RdHi,RdLo相加,結(jié)果的低32位保存到RsLo中,而高32位保存到RdHi中。
跳轉(zhuǎn)指令B使程序跳轉(zhuǎn)到指定的地址執(zhí)行程序。帶連接的跳轉(zhuǎn)指令BL將下一條指令的地址拷貝到r14(即返回地址連接寄存器LR)寄存器中,然后跳轉(zhuǎn)到指定地址運(yùn)行程序。需要注意的是,這兩條指令和目標(biāo)地址處的指令都要屬于ARM指令集。兩條指令都可以根據(jù)CPSR中的條件標(biāo)志位的值決定指令是否執(zhí)行。
帶狀態(tài)切換的跳轉(zhuǎn)指令BX使程序跳轉(zhuǎn)到指令中指定的參數(shù)Rm指定的地址執(zhí)行程序,Rm的第0位拷貝到CPSR中T位,位[31∶1]移入PC。若Rm的bit[0]為1,則跳轉(zhuǎn)時(shí)自動(dòng)將CPSR中的標(biāo)志位T置位,即把目標(biāo)地址的代碼解釋為T(mén)humb代碼;若Rm的位bit[0]為0,則跳轉(zhuǎn)時(shí)自動(dòng)將CPSR中的標(biāo)志位T復(fù)位,即把目標(biāo)地址代碼解釋為ARM代碼
帶連接和狀態(tài)切換的跳轉(zhuǎn)指令BLX(Branch with Link Exchange)使用標(biāo)號(hào),用于使程序跳轉(zhuǎn)到Thumb狀態(tài)或從Thumb狀態(tài)返回。該指令為無(wú)條件執(zhí)行指令,并用分支寄存器的最低位來(lái)更新CPSR中的T位,將返回地址寫(xiě)入到連接寄存器LR中。
帶連接和狀態(tài)切換的跳轉(zhuǎn)指令BLX(Branch with Link Exchange)使用一個(gè)寄存器中的絕對(duì)地址,用于使程序跳轉(zhuǎn)到Thumb狀態(tài)或從Thumb狀態(tài)返回。該指令用分支寄存器的最低位來(lái)更新CPSR中的T位,將返回地址寫(xiě)入到連接寄存器LR中。
ARM體系結(jié)構(gòu)允許通過(guò)增加協(xié)處理器來(lái)擴(kuò)展指令集。最常用的協(xié)處理器是用于控制片上功能的系統(tǒng)協(xié)處理器。例如控制Cache和存儲(chǔ)管理單元的CP15寄存器。此外,還有用于浮點(diǎn)運(yùn)算的浮點(diǎn)ARM協(xié)處理器,各生產(chǎn)商還可以根據(jù)需要開(kāi)發(fā)自己的專用協(xié)處理器。
ARM指令集提供了兩條指令,可直接控制程序狀態(tài)寄存器psr。MRS指令用于把cpsr或者spsr的值傳送到一個(gè)寄存器;MSR與之相反,它將一個(gè)寄存器的內(nèi)容傳送到cpsr或者spsr。這兩條指令結(jié)合,可用于對(duì)cpsr和spsr進(jìn)行讀/寫(xiě)操作。
ARMv5及其以上版本提供了一條新的指令——零計(jì)數(shù)指令CLZ(Count Leading Zeros)。該指令用于計(jì)算最高符號(hào)位與第一個(gè)1之間的0的個(gè)數(shù)。當(dāng)一些操作數(shù)需要規(guī)范化(使其最高位為1)時(shí),該指令用于計(jì)算操作數(shù)需要左移的位數(shù)。
交換指令是load/Store指令的一種特殊形式。該指令將一個(gè)存儲(chǔ)器單元內(nèi)容與指定的寄存器內(nèi)容相交換。交換指令為進(jìn)程間同步提供了一種方便的解決途徑。該指令產(chǎn)生一對(duì)原子Load/Store操作,該操作發(fā)生在一個(gè)連續(xù)的總線操作中,在操作期間阻止其他任何指令對(duì)該存儲(chǔ)單元的讀/寫(xiě)。
ARM指令集中提供了兩條產(chǎn)生異常的指令,通過(guò)這兩條指令可以用軟件的方法實(shí)現(xiàn)異常。表9.4總結(jié)了ARM異常產(chǎn)生指令。
本文根據(jù)光纖激光器泵浦源的特點(diǎn),以設(shè)計(jì)泵浦源驅(qū)動(dòng)的人機(jī)交互界面為前提,結(jié)合用戶需求和Qt/Embedded特點(diǎn)來(lái)開(kāi)發(fā)嵌入式控制面板。詳細(xì)介紹了基于Qt/Embedded的嵌入式應(yīng)用程序的開(kāi)發(fā)過(guò)程,并成功移植到嵌入板中控制LD正常工作。
本文介紹了GSM無(wú)線模塊在嵌入式系統(tǒng)的應(yīng)用,系統(tǒng)采用基于ARM9核的AT91RM9200微處理器,GSM無(wú)線模塊采用華為MG323無(wú)線模塊,在嵌入式Linux系統(tǒng)下,通過(guò)ARM與MG323進(jìn)行控制通信,實(shí)現(xiàn)了短消息模塊的軟件
在如今這個(gè)信息化時(shí)代,ARM嵌入式系統(tǒng)在各個(gè)領(lǐng)域均得到了廣泛的應(yīng)用。本文從ARM的概念入手,就ARM嵌入式微處理器的相關(guān)內(nèi)容進(jìn)行了概述,并重點(diǎn)就ARM嵌入式微處理器的應(yīng)用及發(fā)展情況,以及未來(lái)發(fā)展過(guò)程
Linux是一種支持多種體系結(jié)構(gòu)處理器的操作系統(tǒng),有很強(qiáng)的移植性。描述了將μClinux移植到基于S3C4510B處理器目標(biāo)板上的方法與過(guò)程。首先介紹了S3C4510B處理器和μClinux,并簡(jiǎn)單說(shuō)明了如何搭建移植環(huán)
本文針對(duì)無(wú)影照明系統(tǒng)中色溫控制的難題,設(shè)計(jì)了一種基于ARM微處理器的嵌入式溫度調(diào)節(jié)器,整個(gè)智能溫度控制器由微控制器、數(shù)字顯示模塊、溫度傳感器、PWM加熱模塊、時(shí)鐘電路等多個(gè)部件組成,設(shè)計(jì)了其中
我們大家知道傳統(tǒng)的鼠標(biāo)只能做到上下左右移動(dòng)的功能,而當(dāng)我們?cè)谕嬗螒虻臅r(shí)候例如大家不陌生的CS游戲,因?yàn)閷?duì)槍的移動(dòng)、射擊等操作是利用“趴”在桌面上鼠標(biāo)的移動(dòng)和點(diǎn)擊實(shí)現(xiàn)的,然而真實(shí)的場(chǎng)面并不是這樣。
隨著科技的發(fā)展,嵌入式系統(tǒng)的應(yīng)用越來(lái)越廣泛,為了進(jìn)行射頻功率校準(zhǔn)系統(tǒng)的嵌入式軟件開(kāi)發(fā),需要將嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS -Ⅱ移植到sharp lh79520微處理器上。分析了嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ
1 Linux中流數(shù)據(jù)的操作 在本設(shè)計(jì)中,數(shù)據(jù)在整個(gè)系統(tǒng)中是以流數(shù)據(jù)的形式存在的,Linux內(nèi)核為流數(shù)據(jù)提供了一個(gè)標(biāo)準(zhǔn)的編程接口,這種接口為數(shù)據(jù)從外部設(shè)備經(jīng)內(nèi)核到達(dá)用戶進(jìn)程提供了一個(gè)全雙工通道。 在
為提高通信基站監(jiān)控終端的可靠性和事件處理能力,本文介紹采用 16位 RISC架構(gòu)嵌入式微處理器R8800實(shí)現(xiàn)基站監(jiān)控終端的設(shè)計(jì)。利用 Paradigm C++ 5.1集成環(huán)境編寫(xiě)監(jiān)控終端控制程序,實(shí)現(xiàn)μC/OS-II在 R88
ARM體系結(jié)構(gòu) 目前,ARM系列的通用32位RISC微處理器有ARM7、ARM9、ARM9E、ARM10等多個(gè)產(chǎn)品,這些處理器可以工作于7種模式下。除User模式以外的其它模式都叫做特權(quán)模式,除User和System以外的其它5種模式