嵌入式:ARM Day4

一、自己編寫代碼實現三盞燈點亮

?源碼:


.text 
.global _start
_start: 			@進行一次初始化bl RCC_INITbl LED1_INITbl LED2_INITbl LED3_INITb looploop: 				@循環開關燈bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl LED3_ONbl delay_1sbl LED3_OFFbl delay_1sbl LED1_ONbl LED2_ONbl LED3_ONbl delay_1sbl LED1_OFFbl LED2_OFFbl LED3_OFFbl delay_1sb loopRCC_INIT:@使能對應控制器,通過RCC_MP_AHB4ENSETR寄存器進行設置@引腳為E第[4]位 置1,引腳為F寄存器第[5]位 置1ldr r0,=0x50000A28ldr r1,[r0]orr r1,r1,#(0x3<<4)   @將P引腳與F引腳的寄存器一起使能str r1,[r0]mov pc,lr@LED1的所有初始化工作
LED1_INIT:@1.通過GPIOx_MODER寄存器將PE10引腳設置為輸出模式,并將[21:20]位 置01ldr r0,=0x50006000ldr r1,[r0]bic r1,r1,#(0x3<<20)orr r1,r1,#(0x1<<20)str r1,[r0]@2.通過GPIOx_OTYPER寄存器將PE10引腳設置為推挽輸出模式,并將第[10]位 置0ldr r0,=0x50006004ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]@3.通過GPIOx_OSPEEDR寄存器將PE10引腳設置為低速輸出模式,并將第[21:20]位 置00ldr r0,=0x50006008ldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]@4.通過GPIOx_PUPDR寄存器將PE10引腳設置為禁止上下拉電阻模式,并將第[21:20]位 置00ldr r0,=0x5000600Cldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]mov pc,lr@LED2的所有初始化工作
LED2_INIT:@1.通過GPIOx_MODER寄存器將PF10引腳設置為輸出模式,并將[21:20]位 置01ldr r0,=0x50007000ldr r1,[r0]bic r1,r1,#(0x3<<20)orr r1,r1,#(0x1<<20)str r1,[r0]@2.通過GPIOx_OTYPER寄存器將PF10引腳設置為推挽輸出模式,并將第[10]位 置0ldr r0,=0x50007004ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]@3.通過GPIOx_OSPEEDR寄存器將PF10引腳設置為低速輸出模式,并將第[21:20]位 置00ldr r0,=0x50007008ldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]@4.通過GPIOx_PUPDR寄存器將PF10引腳設置為禁止上下拉電阻模式,并將第[21:20]位 置00ldr r0,=0x5000700Cldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]mov pc,lr@LED3的所有初始化工作
LED3_INIT:@1.通過GPIOx_MODER寄存器將PE8引腳設置為輸出模式,并將[17:16]位 置01ldr r0,=0x50006000ldr r1,[r0]bic r1,r1,#(0x3<<16)orr r1,r1,#(0x1<<16)str r1,[r0]@2.通過GPIOx_OTYPER寄存器將PE8引腳設置為推挽輸出模式,并將第[8]位 置0ldr r0,=0x50006004ldr r1,[r0]bic r1,r1,#(0x1<<8)str r1,[r0]@3.通過GPIOx_OSPEEDR寄存器將PE8引腳設置為低速輸出模式,并將第[17:16]位 置00ldr r0,=0x50006008ldr r1,[r0]bic r1,r1,#(0x3<<16)str r1,[r0]@4.通過GPIOx_PUPDR寄存器將PE8引腳設置為禁止上下拉電阻模式,并將第[17:16]位 置00ldr r0,=0x5000600Cldr r1,[r0]bic r1,r1,#(0x3<<16)str r1,[r0]mov pc,lr@點亮LED1燈
LED1_ON:@.通過GPIOx_ODR寄存器將PE10引腳設置為輸出高電平模式,并將第[10]位 置1 ldr r0,=0x50006014ldr r1,[r0]orr r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr@熄滅LED1燈
LED1_OFF:@.通過GPIOx_ODR寄存器將PE10引腳設置為輸出低電平模式,并將第[10]位 置0 ldr r0,=0x50006014ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr@點亮LED2燈
LED2_ON:@.通過GPIOx_ODR寄存器將PF10引腳設置為輸出高電平模式,并將第[10]位 置1 ldr r0,=0x50007014ldr r1,[r0]orr r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr@熄滅LED2燈
LED2_OFF:@.通過GPIOx_ODR寄存器將PF10引腳設置為輸出低電平模式,并將第[10]位 置0 ldr r0,=0x50007014ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr@點亮LED3燈
LED3_ON:@.通過GPIOx_ODR寄存器將PE8引腳設置為輸出高電平模式,并將第[8]位 置1 ldr r0,=0x50006014ldr r1,[r0]orr r1,r1,#(0x1<<8)str r1,[r0]mov pc,lr@熄滅LED3燈
LED3_OFF:@.通過GPIOx_ODR寄存器將PE8引腳設置為輸出低電平模式,并將第[8]位 置0 ldr r0,=0x50006014ldr r1,[r0]bic r1,r1,#(0x1<<8)str r1,[r0]mov pc,lr@ 大概1s的延時函數
delay_1s:mov r3, #0x10000000mm:cmp r3, #0subne r3, r3, #1bne mmmov pc, lr.end

二、在C語言中Ox5000A28如何表示一塊地址空間

int *ptr = (int *)0x5000A28

? ? ? ? 在上述代碼中,int *ptr定義了一個指向整數類型的指針ptr,(int *)將地址0x5000A28強制轉換為整數類型的指針,后續可以通過*ptr訪問與修改該地址空間中的值。

三、思維導圖

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40343.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40343.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40343.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何進行網絡活動監控

組織的 IT 基礎架構中的每個網絡設備上都發生了大量活動&#xff0c;例如數據包傳輸、來自網絡協議的消息、設備狀態事件等。網絡活動成為在檢測到問題時識別網絡瓶頸的面包屑&#xff0c;因此即使是最微小的網絡活動也應受到監控&#xff0c;因為它直接影響整體網絡性能、運行…

UI設計師個人工作總結范文精選

UI設計師個人工作總結范文(一) 在忙忙碌碌中&#xff0c;2019年又將過去了&#xff0c;在這一年當中&#xff0c;設計部無論是在運作模式、設計產值、還是人員結構&#xff0c;各方面的變化都比較大。 設計部的運作模式是從7月底開始進行調整的&#xff0c;以獨立承包制的運營方…

爬蟲抓取數據時顯示超時,是代理IP質量不行?

很多人在做數據抓取的時候&#xff0c;會遇到顯示超時了&#xff0c;然后就沒有響應了。這是什么原因的&#xff1f;有的人回答是使用的代理IP質量不行&#xff0c;這種答案&#xff0c;對也不對。 數據抓取時&#xff0c;出現超時的原因時多方面影響的&#xff0c;主要分為目標…

python爬蟲5:requests庫-案例3

python爬蟲5&#xff1a;requests庫-案例3 前言 ? python實現網絡爬蟲非常簡單&#xff0c;只需要掌握一定的基礎知識和一定的庫使用技巧即可。本系列目標旨在梳理相關知識點&#xff0c;方便以后復習。 申明 ? 本系列所涉及的代碼僅用于個人研究與討論&#xff0c;并不會對網…

hivesql-dayofweek 函數

返回日期或時間戳的星期幾。 此函數是 extract(DAYOFWEEK FROM expr) 的同義函數。 語法 dayofweek(expr) 參數 expr&#xff1a;一個 DATE 或 TIMESTAMP 表達式。 返回 一個 INTEGER&#xff0c;其中 1 Sunday 和 7 Saturday。 示例 > SELECT dayofweek(2009-07-30)…

mysql 01.三范式,數據類型

01.概念的區分&#xff1a; mysql是屬于DBMS層次的&#xff0c;sql語句是用于DBMS的語句。 02.sql語句詳細介紹&#xff1a; SQL的概述Structure Query Language(結構化查詢語言)簡稱SQL&#xff0c;它被美國國家標準局(ANSI)確定為關系型數據庫語言的美國標準&#xff0c;后…

神經網絡基礎-神經網絡補充概念-37-其他正則化方法

概念 L1 正則化&#xff08;Lasso Regularization&#xff09;&#xff1a;L1 正則化通過在損失函數中添加參數的絕對值之和作為懲罰項&#xff0c;促使部分參數變為零&#xff0c;實現特征選擇。適用于稀疏性特征選擇問題。 L2 正則化&#xff08;Ridge Regularization&…

conda常用命令及國內鏡像源

conda命令使用介紹 啟動conda source ~/.bashrc幫助目錄 conda create -h檢查conda版本 conda --version升級當前版本的conda conda update conda環境管理 列出所有的環境 conda info -e conda env list安裝一個不同版本的python新環境 conda create --name py27 pytho…

PHP FTP的相關函數及簡單使用示例

簡介 FTP是ARPANet的標準文件傳輸協議&#xff0c;該網絡就是現今Internet的前身。 PHP FTP函數是通過文件傳輸協議提供對文件服務器的客戶端訪問&#xff0c;FTP函數用于打開、登陸以及關閉連接&#xff0c;也用于上傳、下載、重命名、刪除以及獲取服務器上文件信息。 安裝 …

Ubuntu下mysql8開啟遠程連接

環境 mysql8ubuntu22.04 更改配置文件 vim /etc/mysql/mysql.conf.d/mysqld.conf找到 bind-address 127.0.0.1 mysqlx-bind-address 127.0.0.1 把這兩行注釋掉&#xff0c;保存退出即可 修改mysql配置 登錄mysql創建一個遠程連接賬戶,名字任意&#xff0c;密碼任意,用戶名…

前端高頻面試題 Day02

面試題 var 和 let const 的區別 var 是 ES5 及之前的語法&#xff0c;let const 是 ES6 語法var 和 let 是變量&#xff0c;可修改&#xff1b;const 是常量&#xff0c;不可修改var 有變量提升&#xff0c;let const 沒有var 沒有塊級作用域&#xff0c;let const 有 &…

JavaWeb-DAO設計模式

目錄 DAO設計模式 1.認識DAO 2.DAO各部分的詳解 3.DAO設計模式流程 DAO設計模式 1.認識DAO DAO(Data Acess Object 數據庫訪問對象)的主要功能是操作數據庫&#xff0c;所以DAO在標準開發架構中數據數據層&#xff0c;以下是標準開發的架構 客戶層&#xff1a;目前使用B/…

vue中style scoped屬性的作用

一、為什么要給style 節點加 scoped 屬性&#xff08;vue&#xff09; 1、作用&#xff1a;當style標簽里面有scoped屬性時&#xff0c;它的css只作用于當前組建的元素。在單頁面項目中可以使組件之間互不污染&#xff0c;實現模塊化&#xff08;實現組件的私有化&#xff0c;不…

Ubuntu安裝mysql5.7

目錄 1. 更新系統軟件包2. 安裝MySQL 5.73. 啟動MySQL 服務4. 設置MySQL root 密碼5. 驗證MySQL 安裝6. 啟用遠程訪問7. 創建新用戶8. 為新用戶授予權限9. mysql命令 以Ubuntu 18.04系統為例&#xff0c;安裝MySQL 5.7。操作步驟如下&#xff1a; 1. 更新系統軟件包 sudo apt…

Openai中的tokens怎么估計

大規模語言模型&#xff08;LLM&#xff09;的出現給自然語言處理領域帶來了變革的可能性&#xff0c;Openai開放了chatgpt的API&#xff0c;方便了開發人員使用LLM的推理能力&#xff0c;注冊時贈送5美元的使用額度&#xff0c;有效期3個月。 如果想便捷的使用chatgpt的API&a…

介紹 TensorFlow 的基本概念和使用場景

TensorFlow 是一種開源的機器學習框架&#xff0c;由 Google 開發。它是用來構建和訓練機器學習模型的強大工具&#xff0c;支持很多種不同類型的機器學習算法&#xff0c;并使用數據流圖來表示計算過程。 TensorFlow 的核心是張量 (Tensor) 和計算圖 (Graph)。 張量 (Tensor)…

OpenCV之薄板樣條插值(ThinPlateSpline)

官方文檔&#xff1a;OpenCV: cv::ThinPlateSplineShapeTransformer Class Reference 使用方法&#xff1a; 頭文件&#xff1a;#include <opencv2/shape/shape_transformer.hpp> &#xff08;1&#xff09;點匹配 一般根據有多少個樣本&#xff08;或者點&#xff09;…

6.2 Spring Boot整合MyBatis

1、基于Spring BootMyBatis的學生信息系統的設計與實現案例 基于Spring BootMyBatis實現學生信息的新增、修改、刪除、查詢功能&#xff0c;并實現MySQL數據庫的操作。 MySQL數據庫創建學生表&#xff08;t_student&#xff09;&#xff0c;有主鍵、姓名、年齡、性別、出生日…

npm如何設置淘寶的鏡像源模式

1. 查看當前npm的下載源 npm config get registry2. 全局配置npm使用淘寶鏡像作為默認下載源 npm config set registry https://registry.npm.taobao.org --global3. 安裝依賴包 npm install <package-name> 添加到devDependencies字段中&#xff1a; npm install &l…

Jmeter 二次開發 函數助手 AES加解密

Jmeter 二次開發 函數助手 AES加解密 1. 環境準備2. 關鍵技術說明2.1 離線導包2.2 示例代碼 3. 代碼包4. 結果演示 1. 環境準備 IDE &#xff1a;IntelliJ IDEA 2021.1.1 x64JAVA環境 &#xff1a;jdk1.8.0_251離線導包&#xff1a;導入Jmeter安裝目錄下lib/ext下的ApacheJmet…