上一小节,我们使用了 C 语言控制了 gpio,这一小节我们来看一下如何使用汇编来控制 gpio 呢?有的
同学可能会有疑问了,既然我们可以使用 C 语言来控制 gpio,为什么我们还要使用更底层的汇编语言呢,
如果我们要使用 C 语言,是不是需要等待 C 语言环境建立起来才可以使用呢,那他是不是就要比汇编稍微
的慢一些呢,如果我们想让他上电立马就确定 gpio 管脚的电平的状态,使用汇编会更好些。
我们打开 Targets/LS2K/ls2k/start.S 下的 start.S 文件,我们在 9.4.2 小节里面已经确定了他的位置,这里
就不在赘述了。
然后我们在第 487 行输入以下代码,同样,这里还是用 gpio0 给大家举例
/*
*设置使用 GPIO 的方向为输出
*/
li v0, 0xbfe10500
ld v1, (v0)
dli a0, (1<<0)
//gpio0
or v1, a0
xor v1, a0
sd v1, (v0)
/*
*找到 GPIO 输出数据寄存器
*/
//0x10(v0)这种写法就是给 v0 地址偏移 0x10,v0 地址是 0xbfe10500,偏移 0x10 就是 0xbfe10510,即
输出数据寄存器
ld v1, 0x10(v0)
/*
*给数据寄存器写 1 输出高电平
*/
or v1, a0
sd v1, 0x10(v0) //on
/*
*延迟
*/
dli a2,0xffff
//delay
1:
subu a2, 0x1
nop
bgtz a2, 1b
/*
*给数据寄存器写 0 输出低电平
*/
or v1, a0
xor v1, a0
//off
sd v1, 0x10(v0)
/*
*延迟
*/
dli a2,0xffff
//delay
2:
subu a2, 0x1
nop
bgtz a2, 2b
如下图所示:
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
CFUMEVK-KIT开发板设计方案
利用PIC24F Curiosity开发板简化设计
Kinetis K60系列MCU开发板CFUMEVK-KIT
NEC MCU 78F0513D开发板使用教程
AN2131开发板原理图.rar
CY7C68013开发板原理图.rar
国产FPGA SoC芯选择,米尔安路飞龙核心板重磅发布
AM3359支持WINCE7.0
6TOPS算力驱动30亿参数LLM,米尔RK3576部署端侧多模态多轮对话
米尔出席2025安路科技FPGA技术沙龙
慕尼黑电子展上展出的开发板(还有3D 打印机等~)
SL811HS开发板原理图.rar
拆解:树莓派5 8 GB AI 套件
(已送出,结贴)送一块51开发板,你出邮费
在米尔FPGA上实现Tiny YOLO V4,助力AIoT应用
出一个全新正点原子STM32战舰开发板,全新板二手价
单片机开发板
GWEVB_XC蓝牙设备开发板
米尔出席openEuler Summit 2024,携全志T536和RK3562核心模组亮相
12路1080P高清视频流,米尔RK3576开发板重塑视频处理极限
Jobs芯科EFR32xG24 Dev Kit开发板开箱视频
当6 TOPS不再是极限:米尔RK3576 + Hailo-8,让高帧率摄像头真正“实时”
莱迪思联手英伟达推出 Sensor Bridge 方案 加速边缘 AI 产品落地
ARM嵌入式系统开发板三星S3C44B0X的完整Protel电路图.rar
51单片机开发板
Badge USB OCD 与 78F0513D 使用演示视频
Microchip PIC24FJ256DA210开发板在图形显示上的应用
米尔-瑞萨RZ/G2L核心板开发板的系统启动时间优化应用笔记
建议王总组织个开发板的捐赠活动
3G高分辨率平板开发板设计方案