国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

36.從匯編到C(bl1到bl2)

發(fā)布者:BlossomWhisper最新更新時(shí)間:2024-10-29 來(lái)源: cnblogs關(guān)鍵字:匯編 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

匯編跳轉(zhuǎn)到C必須使用絕對(duì)跳轉(zhuǎn):

工程代碼

在Makefile中加入main.o:

Start.S:

 

Make編譯:

Main.c代碼:

#define GPKCON (volatile unsigned long*)0x7F008820 //volatile指定不對(duì)后面的數(shù)進(jìn)行優(yōu)化

#define GPKDAT (volatile unsigned long*)0x7F008824

 

int myboot_main()

{

*(GPKCON) = 0x1111; //把值賦給GPKCON寄存器指向的地址

*(GPKDAT) = 0xe;

 

return 0;

}


關(guān)鍵字:匯編 引用地址:36.從匯編到C(bl1到bl2)

上一篇:37.C與匯編混合編程
下一篇:35.BSS段的知識(shí)

推薦閱讀最新更新時(shí)間:2025-06-22 00:10

STC51從入門到精通(匯編)~~~ 第七講:80C51的定時(shí)器/計(jì)數(shù)器
7.1 定時(shí)器/計(jì)數(shù)器 7.1.1 定時(shí)器/計(jì)數(shù)器的組成 7.1.2 定時(shí)器/計(jì)數(shù)器的工作原理 1、定時(shí)方式 定時(shí)方式時(shí),T記錄80C51內(nèi)部振蕩器輸出的脈沖(機(jī)器周期信號(hào))個(gè)數(shù)。 每一個(gè)機(jī)器周期使T0或T1的計(jì)數(shù)器增加1,直至計(jì)滿回零自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。 2、計(jì)數(shù)方式 計(jì)數(shù)方式時(shí),T的功能是計(jì)來(lái)自T0(P3.4)T1(P3.5)的外部脈沖信號(hào)的個(gè)數(shù)。 7.1.3定時(shí)器/計(jì)數(shù)器的控制 定時(shí)器/計(jì)數(shù)器是一種可編程的部件,在其工作之前必須將控制字寫入工作方式和控制寄存器,用以確定工作方式,這個(gè)過(guò)程稱為定時(shí)器/計(jì)數(shù)器的初始化。 1、工作方式寄存器TMOD (89H) (1) M1、M0:工作方式控制位 (2) C
[單片機(jī)]
STC51從入門到精通(<font color='red'>匯編</font>)~~~ 第七講:80<font color='red'>C</font>51的定時(shí)器/計(jì)數(shù)器
ARM匯編語(yǔ)言與C/C++的混合編程
ARM公司不生產(chǎn)芯片,而是出售核(如ARM9)給硬件廠商,硬件廠商添加一些外圍器件,就成了芯片(如s3c2440)。 ARM匯編語(yǔ)言與C/C++的混合編程 - 在C/C++代碼中嵌入?yún)R編指令 在C/C++中使用內(nèi)嵌的匯編指令語(yǔ)法格式: 使用關(guān)鍵字_ _asm來(lái)標(biāo)識(shí)一段匯編指令程序 _ _asm {undefined 匯編語(yǔ)言程序 ~~~~~~~~~~ 匯編語(yǔ)言程序 } 例C1.C #include stdio.h void my_strcpy(const char *src, char *dest) {undefined char ch; _ _asm
[單片機(jī)]
24c08 I2C總線協(xié)議操作程序匯編C語(yǔ)言2個(gè)版本詳解
;24c08操作時(shí)序?yàn)椋浩鹗夹盘?hào)sclk拉高情況下sda由高變低,表示起始 ; 結(jié)束信號(hào)sclk拉高情況下sda由低變高,表示結(jié)束 ; 字節(jié)由高位向低位依次發(fā)送 ; 第一個(gè)字節(jié)是地址和讀寫控制,第二個(gè)是存儲(chǔ)地址,第三個(gè)是數(shù)據(jù),每個(gè)數(shù)據(jù)結(jié)束器件都會(huì)發(fā)送 ack應(yīng)答信號(hào); ; I2C 總線協(xié)議 ;I2C 總線協(xié)議定義如下 ;1 只有在總線空閑時(shí)才允許啟動(dòng)數(shù)據(jù)傳送 ;2 在數(shù)據(jù)傳送過(guò)程中當(dāng)時(shí)鐘線為高電平時(shí)數(shù)據(jù)線必須保持穩(wěn)定狀態(tài)不允許有跳變時(shí)鐘線 ;為高電平時(shí)數(shù)據(jù)線的任何電平變化將被看作總線的起始或停止信號(hào) ;起始信號(hào) ;時(shí)鐘線保持高電平期間數(shù)據(jù)線電平從高到低的跳變作為I2C 總線的起始信號(hào)
[單片機(jī)]
51單片機(jī)led燈漸變PWM調(diào)光(漸亮漸滅)C語(yǔ)言和匯編源程序
PWM控制led燈漸亮漸滅程序 適用ME500開發(fā)系統(tǒng) 短接JP41-2選用8個(gè)LED燈 PWM—PulseWidthModulation(脈沖寬度調(diào)制) PWM足?種周期?走而高低電平的rV空比可以調(diào)制的方波信兮. 按K2—下,PWM值減小,則占空比增加。 兗度逐漸增加,直到8個(gè)LED燈達(dá)到高亮,蜂鳴器響。 按K1—下,PWM值增加,則占空比減小。 立度逐漸減弱,直到8個(gè)LED燈達(dá)到最峭,蜂鳴器響。 單片機(jī)匯編語(yǔ)言源程序如下: ; PWM 控制 LED 燈漸亮漸滅程序 ; 適用 ME500 開發(fā)系統(tǒng) ; 晶振為11.0592M ; 利用定時(shí)器控制產(chǎn)生占空比可變的 PWM 波 ; 按K1,PWM值增加,則占空比減小,LED 燈漸
[單片機(jī)]
arm中ads實(shí)現(xiàn)c匯編混合編譯的方法
在嵌入式系統(tǒng)開發(fā)中,目前使用的主要編程語(yǔ)言是C 和匯編,雖然C++已經(jīng)有相應(yīng)的編譯器,但是現(xiàn)在使用還是比較少的。 在稍大規(guī)模的嵌入式程序設(shè)計(jì)中,大部分的代碼都是用C來(lái)編寫的,主要是因?yàn)镃語(yǔ)言具有較強(qiáng)的結(jié)構(gòu)性,便于人的理解,并且具有大量的庫(kù)支持。但對(duì)于一寫硬件上的操作,很多地方還是要用到匯編語(yǔ)言,例如硬件系統(tǒng)的初始化中的CPU 狀態(tài)的設(shè)定,中斷的使能,主頻的設(shè)定,RAM控制參數(shù)等。另外在一些對(duì)性能非常敏感的代碼塊,基于匯編與機(jī)器碼一一對(duì)應(yīng)的關(guān)系,這時(shí)不能依靠C編譯器的生成代碼,而要手工編寫匯編,從而達(dá)到優(yōu)化的目的。匯編語(yǔ)言是和CPU的指令集緊密相連的,作為涉及底層的嵌入式系統(tǒng)開發(fā),熟練對(duì)應(yīng)匯編語(yǔ)言的使用也是必須的。 單純的C或
[單片機(jī)]
c51 c匯編語(yǔ)言混合編程
1、在 C 文件中要嵌入?yún)R編代碼片以如下方式加入?yún)R編代碼: #pragma ASM ; Assembler Code Here #pragma ENDASM 2、在 Project 窗口中包含匯編代碼的 C 文件上右鍵,選擇 Options for ... ,點(diǎn)擊右邊的 Generate Assembler SRC File 和 Assemble SRC File ,使檢查框由灰色變成黑色(有效)狀態(tài); 3、根據(jù)選擇的編譯模式,把相應(yīng)的庫(kù)文件(如 Small 模式時(shí),是 KeilC51LibC51S.Lib)加入工程中, 該文件必須作為工程的最 后文件; 4、編譯,即可生成目標(biāo)代碼。 來(lái)個(gè)實(shí)例吧: #include reg
[單片機(jī)]
STM8與匯編語(yǔ)言(8)--16位定時(shí)器應(yīng)用
當(dāng)需要更長(zhǎng)時(shí)間的定時(shí)時(shí),最好使用16位的定時(shí)器,STM8單片機(jī)中都提供了2到3個(gè)的16位定時(shí)器,方便用戶使用。 下面的代碼給出了一個(gè)采用16位定時(shí)器實(shí)現(xiàn)的定時(shí)中斷程序,在定時(shí)中斷程序中,驅(qū)動(dòng)LED指示燈的閃爍。 切記,一定要將中斷服務(wù)程序的入口地址填寫到中斷向量表中,并且要根據(jù)定時(shí)器的中斷向量號(hào)在正確的位置上填寫。 同樣還是利用ST的開發(fā)工具,生成一個(gè)匯編程序的框架,然后修改其中的main.asm,修改后的代碼如下。 編譯通過(guò)后,下載到開發(fā)板,運(yùn)行程序,可以看到LED在閃爍,或者用示波器可以在LED引腳上看到方波。 stm8/ #include mapping.inc #include
[單片機(jī)]
Freescale MC9S08AW60匯編學(xué)習(xí)筆記(七)
  之前我們寫了延時(shí)的子程序,但是僅僅在電腦上運(yùn)行,在CodeWarrior中調(diào)試根本給不了延時(shí)所實(shí)現(xiàn)的直觀效果,也就是說(shuō)程序運(yùn)行到哪里但我們卻無(wú)法直觀地得出發(fā)生了延時(shí)的效果,所以我們要把這個(gè)延時(shí)的程序用出去,比如點(diǎn)亮一盞led燈,讓它延時(shí)我們規(guī)定的時(shí)間后熄滅,然后再點(diǎn)亮再熄滅......這里我們使用清華版的MC9S08AW60開發(fā)板來(lái)驗(yàn)證延時(shí)的效果。對(duì)于開發(fā)板的使用和燒寫請(qǐng)多看看數(shù)據(jù)手冊(cè)和使用說(shuō)明。我們直接給出驗(yàn)證延時(shí)的代碼:    org $0070 num ds.b 1 count1 ds.b 1 count2 ds.b 1 org $1860 re_cycle:   mov #70T,num   dbnz num,*
[單片機(jī)]
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved