S3C2440之裸机之汇编点亮LED灯

2024-06-20 20:58
文章标签 裸机 led 汇编 点亮 s3c2440

本文主要是介绍S3C2440之裸机之汇编点亮LED灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

虚拟机环境:Oracle VM VirtualBox
Linux系统:ubuntu_14.04.6
交叉编译工具:[100ask分享的所有文件](https://eyun.baidu.com/s/3b1UtLc)
100ask分享的所有文件 > 002_JZ2440资料光盘_20180516(免费) > 资料光盘 > A盘 > tools.zip > arm-linux-gcc-4.3.2.tar.bz2
gcc-3.4.5-glibc-2.3.6/bin

第一步:查看原理图
在这里插入图片描述
在这里插入图片描述

leftmiddleright
nLED4nLED2nLED1
GPF6GPF5GPF4

输出低电平点亮LED灯
输出高电平熄灭LED灯

第二步:查看芯片手册
在这里插入图片描述
相应引脚配置为输出
输出低电平

第三步:编写程序
led_on.S:

.text
.global _start_start:LDR R0,=0x56000050MOV R1,#0x00001000STR R1,[R0]LDR R0,=0x56000054MOV R1,#0x00000000STR R1,[R0]MAIN_LOOP:B MAIN_LOOP

第四步:编写makefile
makefile:

ARM_LINUX_XXX=/home/xlbtlmy/Desktop/ARM_Linux/gcc-3.4.5-glibc-2.3.6/binCC=$(ARM_LINUX_XXX)/arm-linux-gcc
LD=$(ARM_LINUX_XXX)/arm-linux-ld
OBJCOPY=$(ARM_LINUX_XXX)/arm-linux-objcopy
OBJDUMP=$(ARM_LINUX_XXX)/arm-linux-objdump
TARGET=$(OPT)src=$(shell ls *.S)
objs=$(patsubst %.S,%.o,$(src))BIN=$(TARGET).bin
ELF=$(TARGET).elf
DIS=$(TARGET).dis$(BIN):$(objs)$(LD) -Ttext 0x00000000 $^ -o $(ELF)$(OBJCOPY) -O binary -S $(ELF) $(BIN)$(OBJDUMP) -D -m arm $(ELF) > $(DIS)%.o:%.S$(CC) -c -o $@ $<.PHONY:clean
clean:rm -f *.o *.bin *.elf *.dis

make OPT=led_on

第五步:烧录运行
eop.bat:

@echo off:JTAG(0:OpenJTAG 1:DongleJTAG 2:Wiggler)
SET JTAG=0
:CPU(0:S3C2410 1:S3C2440 2:S3C6410)
SET CPU=1
:Flash(0:Nand 1:Nor)
SET Flash=0
:Access(0:Write 1:Read)
SET Access=0
:Offset()
SET Offset=0
:File()
SET File=led_on.binoflash %JTAG% %CPU% %Flash% %Access% %Offset% %File%pause

第五步:观察实验现象
左边的LED灯被点亮

测试:

.text
注释掉之后编译
无提示信息.global _start
注释掉之后编译
提示“warning: cannot find entry symbol _start; defaulting to 00000000”

这篇关于S3C2440之裸机之汇编点亮LED灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1079242

相关文章

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

MENU 硬件电路设计软件程序设计正常流水LED灯反复流水LED灯移动流水LED灯 硬件电路设计 材料名称数量直插式LED1kΩ电阻杜邦线(跳线)若干面包板1 每一个LED的正极与开发板一个GPIO引脚相连,并串联一个电阻,负极接GND。 当然也可以选择只使用一个电阻。 软件程序设计 正常流水LED灯 因为要用到多个GPIO引脚,所以最好把所有的GPI

什么是LED智能会议一体机?COB超微小间距LED会议一体机大势所趋

LED智能会议一体机,作为现代会议室革新的核心装备,正逐步颠覆传统会议模式的界限。它不仅仅是一台集成了高清显示、触控互动、音视频处理及远程协作等功能于一体的智能设备,更是推动会议效率与体验双重飞跃的关键力量。随着技术的不断进步,特别是COB(Chip On Board)超微小间距LED技术的引入,LED智能会议一体机正迎来前所未有的发展机遇,成为大势所趋。 COB技术通过将LED芯片直接封装在基

汇编:嵌入式软件架构学习资源

成为嵌入式软件架构设计师需要掌握多方面的知识,包括嵌入式系统、实时操作系统、硬件接口、软件设计模式等。 以下是一些推荐的博客和网站,可以帮助你深入学习嵌入式软件架构设计: ### 1. **Embedded.com**    - **网址**: [Embedded.com](https://www.embedded.com/)    - **简介**: 这是一个专注于嵌入式系统设计的专业网

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光 一,前言二,资源包内容三,免费获取资源包 一,前言 在创意的世界里,每一个细节都能决定一个项目的独特魅力。今天,要向大家介绍一款令人惊艳的粒子效果包 ——Super Confetti FX。 二,资源包内容 💥充满活力与动态,是 Super Confetti FX 最显著的标签。它宛如一位

全倒装COB超微小间距LED显示屏的工艺技术,相比SMD小间距有何优势

全倒装COB(Chip On Board)超微小间距LED显示屏,在工艺技术上的革新,相较于传统的SMD(Surface Mount Device)小间距LED显示屏,展现出了多方面的显著优势。 首先,全倒装技术极大地提升了LED芯片的散热性能。通过将芯片直接焊接在基板上,减少了热阻,使得热量能够更快速地传导至基板并散发出去,有效避免了因高温导致的光衰和色彩偏移问题,从而保证了显示屏的长期稳定性

没资料的屏幕怎么点亮?思路分享

这次尝试调通一个没资料的屏幕,型号是HYT13264,这个是淘宝上面的老王2.9元屏,成色很好但是长期库存没有资料和代码能点亮,仅仅只有一个引脚定义。这里我使用Arduino Nano作为控制器尝试点亮这个模块。 首先,已知别人找出来的线序如下 1 - CS2 - RST 3 - DC4 - SCK5 - SDA6 - VCC7 - GND8 - K59 - K410

GDB 查看汇编

查看汇编 x disassemble

RK3288 点亮LVDS屏

本文记录调试 LVDS接口屏的一些关键步骤,主要是dts文件中关于 频率、分辨率 、时序参数的设置  环境: RK3288 9tripod CV5  linux 4.4.189 LCD:JYT121XQ01 (追曦 DS1212)12.1电容触控屏   查看屏幕规格书    只要在rockchip dts 中 设置 T(HB)=Thb+Thf+Thsyn=320clock  T