mini2440 之——LED简单控制(裸机) c与汇编
@ File:led_on.S
@ 功能:LED点灯程序,点亮LED4
@******************************************************************************
.text
.global _start
_start:
LDR R0,=0x56000010 @ R0设为GPBCON寄存器。此寄存器
@ 用于选择端口B各引脚的功能:
@ 是输出、是输入、还是其他
MOV R1,#0x00010000
STR R1,[R0] @ 设置GPB8为输出口, 位[17:16]=0b01
LDR R0,=0x56000014 @ R0设为GPBDAT寄存器。此寄存器
@ 用于读/写端口B各引脚的数据
MOV R1,#0x00000000 @ 此值改为0x00000100,
@ 可让LED4熄灭
STR R1,[R0] @ GPB5输出0,LED1点亮
MAIN_LOOP:
B MAIN_LOOP
对应的Makefile:
led_on.bin : led_on.S
arm-linux-gcc -g -c -o led_on.o led_on.S
arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf
arm-linux-objcopy -O binary -S led_on_elf led_on.bin
clean:
rm -f led_on.bin led_on_elf *.o
#define GPBDAT (*(volatile unsigned long *)0x56000014)
{
GPBCON = 0x00010000; // 设置GPB8为输出口, 位[17:16]=0b01
GPBDAT = 0x00000000; // GPB8输出0,LED4点亮,此值改为0x00000100,LED4点亮熄灭
}
@ File:crt0.S
@ 功能:通过它转入C程序
@******************************************************************************
.global _start
_start:
ldr r0, =0x56000010 @ WATCHDOG寄存器地址
mov r1, #0x0
str r1, [r0] @ 写入0,禁止WATCHDOG,否则CPU会不断重启
ldr sp, =1024*4 @ 设置堆栈,注意:不能大于4k, 因为现在可用的内存只有4K
@ nand flash中的代码在复位后会移到内部ram中,此ram只有4K
bl main @ 调用C程序中的main函数
halt_loop:
b halt_loop
arm-linux-gcc -g -c -o crt0.o crt0.S
arm-linux-gcc -g -c -o led_on_c.o led_on_c.c
arm-linux-ld -Ttext 0x0000000 -g crt0.o led_on_c.o -o led_on_c_elf
arm-linux-objcopy -O binary -S led_on_c_elf led_on_c.bin
arm-linux-objdump -D -m arm led_on_c_elf > led_on_c.dis
clean:
rm -f led_on_c.dis led_on_c.bin led_on_c_elf *.o
mini2440 之——LED简单控制(裸机) c与汇编相关推荐
- stm32 led屏控制卡_LED显示屏控制卡解析
LED显示屏控制卡是LED图文显示屏的核心部件,负责接收来自计算机串行口的画面显示信息,置入帧存储器,按分区驱动方式生成天津LED显示屏所需的串行显示数据和扫描控制时序.LED显示屏画面的效果与它有关 ...
- 二、点亮LED(GPIO控制)
二.点亮LED(GPIO控制) 文件状态: [ ] 草稿 [ ] 正在修改 [ √ ] 正式发布 文件标识: 当前版本: V1.1 作 者: Skymixos 完成日期: 2022年10月02日 版 ...
- python led屏控制_【教程】简易Python上位机之LED控制
电子爱好者应该不会对"上位机"这个词感到陌生,毕竟或多或少有过接触.但若是说到上位机的开发的话,大家就不一定熟悉了.很多电子爱好者完全没有接触过上位机的开发工作,他们真的没有相应的 ...
- 《STM32单片机开发应用教程(HAL库版)—基于国信长天嵌入式竞赛实训平台(CT117E-M4)》第四章4.1 LED显示控制实验
写在前面-- <STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>第四章4.1,本节将通过LED显示控制实验,学习STM32G431的开发技 ...
- MT7621方案 LED 灯控制 (基于OpenWrt平台)
注:出处不明,最开始是在这里看到的,图竟然没有...没有...相关资料也几乎木有...datasheet里也没有寄存器配置说明......MT7621还真是坑爹啊! 目前市面上大部分路由器方案是基于M ...
- openwrt中LED的控制
openwrt中LED的控制 上手总结 配置方法一 简单操作 直接进入/sys/class/leds目录下面.以<路由器名字>:颜色:<功能>格式命名的目录均对应一个LED. ...
- LED灯控制 实验报告
实验目标 掌握STM32的GPIO的使用方法,并能实现对LED的控制. 实现跑马灯实验,即多个LED灯(3个以上)依次点亮熄灭. 实验步骤 跑马灯实验,即多个LED灯(3个以上)依次点亮熄灭. (1) ...
- android 亮化图片,LEDLAMP(led灯光控制)
LEDLAMP(led灯光控制)是一款非常不错的手机端led等控制软件.LEDLAMP(led灯光控制)app这款软件可以对:舞台灯光.亮化工程.商业照明等一系列的led灯控制,软件的操作需要利用到G ...
- SGL8022W单通道直流LED 灯光控制触摸芯片
SGL8022W单通道直流LED 灯光控制触摸芯片版本1.4 概述 SGL8022W 是一款用于LED 灯光亮度调节及开关控制的单通道触摸芯片.使用该芯片可以实现 LED 灯光的触摸开关控制和亮度调节 ...
最新文章
- debounce实现 js_javascript防抖函数debounce详解
- Phalcon控制器
- 云上主机SSH秘钥对连接linux注意事项
- 8 种常被忽视的 SQL 错误用法
- CSS设置图片的对齐
- vc下c语言网络编程,用VC编写C/S消息传送程序
- java知识百科全书--强烈推荐
- Angular 下拉菜单实现的一个例子
- gather torch_浅谈Pytorch中的torch.gather函数的含义
- 单片机红外通信c语言,基于C语言的计算机与多单片机红外无线串口通信的实现.doc...
- 算法-两最长回文子串
- Java 实现发送Http请求
- (每日一题 day 002 - 模拟) 166. 分数到小数
- nyoj461 Fibonacci数列(4)解通项公式
- window电脑 休眠后无法唤醒 解决办法
- 手把手教你做一个天气时钟,推荐收藏
- 正反向隔离装置(网闸)
- 【NOIP2016】bzoj4719 天天爱跑步
- 唐宇迪之tensorflow学习笔记项目实战(LSTM情感分析)
- 医学统计学 第五章(定性资料的统计描述)
热门文章
- 【Android 内存优化】自定义组件长图组件 ( 获取图像宽高 | 计算解码区域 | 设置图像解码属性 复用 像素格式 | 图像绘制 )
- 【网络安全】网络安全攻防 -- 黑客攻击简要流程
- Linux Shell的输入彩色字体
- spark 执行流程及各组件执行
- 01.Python基础-3.集合容器
- 谁偷走了程序员的时间??
- ubuntu 安装pycharm
- JEECG弹出框提交表单
- 学习node js 之微信公众帐号接口开发 准备工作之三
- Lucene4.3和Lucene3.5性能对比(一)