嵌入式:ARM Day4

这篇具有很好参考价值的文章主要介绍了嵌入式:ARM Day4。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

嵌入式:ARM Day4,arm开发

一、自己编写代码实现三盏灯点亮

嵌入式:ARM Day4,arm开发

 源码:


.text 
.global _start
_start: 			@进行一次初始化
	bl RCC_INIT
	bl LED1_INIT
	bl LED2_INIT
	bl LED3_INIT
	b loop

loop: 				@循环开关灯
	bl LED1_ON
	bl delay_1s
	bl LED1_OFF
	bl delay_1s
	bl LED2_ON
	bl delay_1s
	bl LED2_OFF
	bl delay_1s
	bl LED3_ON
	bl delay_1s
	bl LED3_OFF
	bl delay_1s
	bl LED1_ON
	bl LED2_ON
	bl LED3_ON
	bl delay_1s
	bl LED1_OFF
	bl LED2_OFF
	bl LED3_OFF
	bl delay_1s
	b loop


RCC_INIT:
	@使能对应控制器,通过RCC_MP_AHB4ENSETR寄存器进行设置
	@引脚为E第[4]位 置1,引脚为F寄存器第[5]位 置1
	ldr r0,=0x50000A28
	ldr r1,[r0]
	orr r1,r1,#(0x3<<4)   @将P引脚与F引脚的寄存器一起使能
	str r1,[r0]
	mov pc,lr

@LED1的所有初始化工作
LED1_INIT:
	@1.通过GPIOx_MODER寄存器将PE10引脚设置为输出模式,并将[21:20]位 置01
	ldr r0,=0x50006000
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	orr r1,r1,#(0x1<<20)
	str r1,[r0]

	@2.通过GPIOx_OTYPER寄存器将PE10引脚设置为推挽输出模式,并将第[10]位 置0
	ldr r0,=0x50006004
	ldr r1,[r0]
	bic r1,r1,#(0x1<<10)
	str r1,[r0]

	@3.通过GPIOx_OSPEEDR寄存器将PE10引脚设置为低速输出模式,并将第[21:20]位 置00
	ldr r0,=0x50006008
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	str r1,[r0]

	@4.通过GPIOx_PUPDR寄存器将PE10引脚设置为禁止上下拉电阻模式,并将第[21:20]位 置00
	ldr r0,=0x5000600C
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	str r1,[r0]
	mov pc,lr

@LED2的所有初始化工作
LED2_INIT:
	@1.通过GPIOx_MODER寄存器将PF10引脚设置为输出模式,并将[21:20]位 置01
	ldr r0,=0x50007000
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	orr r1,r1,#(0x1<<20)
	str r1,[r0]

	@2.通过GPIOx_OTYPER寄存器将PF10引脚设置为推挽输出模式,并将第[10]位 置0
	ldr r0,=0x50007004
	ldr r1,[r0]
	bic r1,r1,#(0x1<<10)
	str r1,[r0]

	@3.通过GPIOx_OSPEEDR寄存器将PF10引脚设置为低速输出模式,并将第[21:20]位 置00
	ldr r0,=0x50007008
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	str r1,[r0]

	@4.通过GPIOx_PUPDR寄存器将PF10引脚设置为禁止上下拉电阻模式,并将第[21:20]位 置00
	ldr r0,=0x5000700C
	ldr r1,[r0]
	bic r1,r1,#(0x3<<20)
	str r1,[r0]
	mov pc,lr

@LED3的所有初始化工作
LED3_INIT:
	@1.通过GPIOx_MODER寄存器将PE8引脚设置为输出模式,并将[17:16]位 置01
	ldr r0,=0x50006000
	ldr r1,[r0]
	bic r1,r1,#(0x3<<16)
	orr r1,r1,#(0x1<<16)
	str r1,[r0]

	@2.通过GPIOx_OTYPER寄存器将PE8引脚设置为推挽输出模式,并将第[8]位 置0
	ldr r0,=0x50006004
	ldr r1,[r0]
	bic r1,r1,#(0x1<<8)
	str r1,[r0]

	@3.通过GPIOx_OSPEEDR寄存器将PE8引脚设置为低速输出模式,并将第[17:16]位 置00
	ldr r0,=0x50006008
	ldr r1,[r0]
	bic r1,r1,#(0x3<<16)
	str r1,[r0]

	@4.通过GPIOx_PUPDR寄存器将PE8引脚设置为禁止上下拉电阻模式,并将第[17:16]位 置00
	ldr r0,=0x5000600C
	ldr r1,[r0]
	bic r1,r1,#(0x3<<16)
	str r1,[r0]
	mov pc,lr

@点亮LED1灯
LED1_ON:
	@.通过GPIOx_ODR寄存器将PE10引脚设置为输出高电平模式,并将第[10]位 置1 
	ldr r0,=0x50006014
	ldr r1,[r0]
	orr r1,r1,#(0x1<<10)
	str r1,[r0]
	mov pc,lr

@熄灭LED1灯
LED1_OFF:
	@.通过GPIOx_ODR寄存器将PE10引脚设置为输出低电平模式,并将第[10]位 置0 
	ldr r0,=0x50006014
	ldr r1,[r0]
	bic r1,r1,#(0x1<<10)
	str r1,[r0]
	mov pc,lr

@点亮LED2灯
LED2_ON:
	@.通过GPIOx_ODR寄存器将PF10引脚设置为输出高电平模式,并将第[10]位 置1 
	ldr r0,=0x50007014
	ldr r1,[r0]
	orr r1,r1,#(0x1<<10)
	str r1,[r0]
	mov pc,lr

@熄灭LED2灯
LED2_OFF:
	@.通过GPIOx_ODR寄存器将PF10引脚设置为输出低电平模式,并将第[10]位 置0 
	ldr r0,=0x50007014
	ldr r1,[r0]
	bic r1,r1,#(0x1<<10)
	str r1,[r0]
	mov pc,lr

@点亮LED3灯
LED3_ON:
	@.通过GPIOx_ODR寄存器将PE8引脚设置为输出高电平模式,并将第[8]位 置1 
	ldr r0,=0x50006014
	ldr r1,[r0]
	orr r1,r1,#(0x1<<8)
	str r1,[r0]
	mov pc,lr

@熄灭LED3灯
LED3_OFF:
	@.通过GPIOx_ODR寄存器将PE8引脚设置为输出低电平模式,并将第[8]位 置0 
	ldr r0,=0x50006014
	ldr r1,[r0]
	bic r1,r1,#(0x1<<8)
	str r1,[r0]
	mov pc,lr

@ 大概1s的延时函数
delay_1s:
	mov r3, #0x10000000
	mm:
	cmp r3, #0
	subne r3, r3, #1
	bne mm
	mov pc, lr

.end

二、在C语言中Ox5000A28如何表示一块地址空间

int *ptr = (int *)0x5000A28

        在上述代码中,int *ptr定义了一个指向整数类型的指针ptr,(int *)将地址0x5000A28强制转换为整数类型的指针,后续可以通过*ptr访问与修改该地址空间中的值。

三、思维导图

嵌入式:ARM Day4,arm开发

 文章来源地址https://www.toymoban.com/news/detail-660409.html

到了这里,关于嵌入式:ARM Day4的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 嵌入式:ARM常用开发编译软件介绍

    嵌入式:ARM常用开发编译软件介绍

    ADS(ARM Developer Suite),是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。 他的前身是SDT,SDT是ARM公司几年前的开发环境软件,目前SDT早已经不再升级。ADS包括了四个模块分别是:SIMULATOR;C 编译器;实时调试器;应用函数库。ADS对汇编、C/C++、java支持的均很好,

    2024年02月06日
    浏览(39)
  • [ARM 汇编]高级部分—ARM汇编编程实战—3.3.2 嵌入式开发环境搭建

    [ARM 汇编]高级部分—ARM汇编编程实战—3.3.2 嵌入式开发环境搭建

    搭建一个嵌入式开发环境主要包括以下几个部分: 安装交叉编译器 配置集成开发环境(IDE) 安装调试工具 下载和烧录程序 接下来,我们将详细介绍每个部分,并提供相应的实例。 安装交叉编译器 交叉编译器是用于将您编写的ARM汇编代码编译成可执行文件的工具。在本教程

    2024年02月11日
    浏览(10)
  • 单片机、ARM、嵌入式开发、Android 底层开发有什么关系?

    单片机、ARM、嵌入式开发、Android 底层开发有什么关系?

    从我目前的见识来看: 单片机是个系统(比如:51、AVR、PLC...),其中包含了去除了输入输出之外的运算器、控制器、存储器,我们用程序可以非常直观的控制引脚电平的高低。最近很多小伙伴找我,说想要一些ARM的资料,然后我根据自己从业十年经验,熬夜搞了几个通宵,

    2024年02月02日
    浏览(14)
  • 嵌入式:QT Day4

    嵌入式:QT Day4

    源码: widget.h widget.cpp main.cpp

    2024年02月14日
    浏览(12)
  • 嵌入式:C高级 Day4

    嵌入式:C高级 Day4

    冒泡排序 简单选择排序: 快速排序:

    2024年02月14日
    浏览(9)
  • 探索嵌入式开发领域:单片机、ARM、Android底层的紧密联系

    探索嵌入式开发领域:单片机、ARM、Android底层的紧密联系

    作为一个曾编写ARM教程和参与Android产品开发的专家,我发现单片机、ARM、嵌入式开发和Android底层开发之间存在紧密的联系。对于那些希望在嵌入式开发领域发展的人来说,了解这些领域的知识至关重要。为了帮助你更好地学习这些内容,我总结了一些嵌入式资料,你可以在

    2024年02月11日
    浏览(10)
  • 嵌入式LINUX开发系列之ARM板子如何替换debian镜像源

    嵌入式LINUX开发系列之ARM板子如何替换debian镜像源

    当你做嵌入式开发过程中拿到一个开发板,遇到 apt update ,发现无法成功,镜像源无法使用,这样的话大大增加了开发难度。最近一个项目遇到这个问题,搜寻网络却无法得到有效答案,本人作为一名嵌入式开发工程师,在这里总结了一下,希望对大家做开发有所帮助,共同

    2024年03月24日
    浏览(11)
  • 【嵌入式资讯】Arm 通过引入 Keil MDK 版本 6 将嵌入式软件开发提升到一个新的水平

    【嵌入式资讯】Arm 通过引入 Keil MDK 版本 6 将嵌入式软件开发提升到一个新的水平

            随着物联网设备变得越来越智能,开发人员面临着日益增加的软件复杂性,这需要新的开发流程来创建优化的 ML 模型和高效的设备驱动程序。因此,我们为生态系统提供的软件开发平台和工具必须与我们的处理器路线图一起发展。Keil 微控制器开发套件 (Keil M

    2024年02月15日
    浏览(18)
  • 1802_在Linux系统上开发ARM单机片机嵌入式软件

    1802_在Linux系统上开发ARM单机片机嵌入式软件

             全部学习汇总: GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. (github.com) 1. 在Linux上也有嵌入式的开发环境,或许还有很多。不过,我现在接触到的大部分还是Windows居多。这一份文件介绍的是一个mbed platform这样一个开源的ARM嵌入式开发环境。可以支持C以

    2024年02月07日
    浏览(10)
  • Ubuntu嵌入式开发编译工具链安装教程之Arm GNU Toolchain

    Ubuntu嵌入式开发编译工具链安装教程之Arm GNU Toolchain

    下载路径: Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer 官方提供了可执行版本和源文件版本(后缀为*src_tar.bz2 ),通常情况我们直接下载可执行版本就足够了,当然致力于编译工具链原理学习的小伙伴对源文件版本是必不可少的,本文仅限可执行版本安装教程,若有

    2024年02月13日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包