两个文件start.S和led.c

start.S

.global _start                @声明一个全局的标号
_start:
    bl main                    @跳转到C函数去执行
halt:
    b halt                    @死循环

led.c

#define GPC0CON        *((volatile unsigned int *)0xE0200060)
#define GPC0DAT        *((volatile unsigned int *)0xE0200064)

void delay(volatile unsigned int t)
{
    volatile unsigned int t2 = 0xFFFF;
    while (t--)
        for (; t2; t2--);
}

int main()
{
    int toggle = 0;
    GPC0CON &= ~(0xFF << 12);
    GPC0CON |= 0x11 << 12;    // 配置GPC0_3和GPC0_4为输出
    
    while (1)
    {
        GPC0DAT &= ~(0x3 << 3);        // 熄灭LED1和LED2
        
        if (toggle)
            GPC0DAT |= 1 << 3;        // 点亮LED1
        else
            GPC0DAT |= 1 << 4;        // 点亮LED2
        
        toggle = !toggle;
        delay(0x50000);
    }
    
    return 0;
}

Makefile

led.bin: start.o led.o
    arm-linux-ld -Ttext 0x20000000 -o led.elf $^
    arm-linux-objcopy -O binary led.elf $@
    arm-linux-objdump -D led.elf > led.dis
    
led.o : led.c
    arm-linux-gcc -c $< -o $@
start.o : start.S
    arm-linux-gcc -c $< -o $@
    
clean:
    rm *.o *.elf *.bin *.dis

转载于:https://www.cnblogs.com/suncoolcat/p/3367852.html

TQ210裸机编程(2)——LED流水灯相关推荐

  1. 分别用汇编语言、C语言编程实现LED流水灯

    一.C语言编程 1.先创建一个新的工程 2.文件名 3.右键Source Group创建一个.c文件 4.在.c文件中放入以下代码 //--------------APB2使能时钟寄存器------- ...

  2. ​用寄存器HAL库完成LED流水灯程序

    STM32的地址映射.寄存器映射原理以及GPIO端口的初始化设置三步骤 ​(一)STM32F103系列芯片的地址映射及寄存器映射原理 1.STM32F103C8T6简要介绍 ● STM32F103C8 ...

  3. S5PV210 | 裸机汇编LED流水灯实验

    S5PV210 | 裸机汇编LED流水灯实验 开发板: 1.原理图 上图中,当按下POWER键后,VDD_5V和VDD_IO会产生5V和3.3V的电压,其中D26无须GPIO控制,为常亮状态,即我们所 ...

  4. 【嵌入式基础】用C语言编程、寄存器实现LED流水灯程序;stm32CubeMX+Keil使用HAL库点亮流水灯

    本文主要介绍STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置步骤.利用C语言编程和寄存器点亮流水灯以及stm32CubeMX+Keil使用HAL库点灯 目录 一.STM3 ...

  5. 采用移位运算编程实现P2口8位LED流水灯

    本代码为基于普中科技51单片机 采用移位运算编程实现P2口8位LED流水灯,从高位(P2.7)到低位(P2.0) #include <reg51.h>void delayms() {uns ...

  6. 【嵌入式系统基础实验一】-----led流水灯及串口通信的HAL库方式和寄存器编程方式实现,输出波形检测

    文章目录 1.实验知识点简要解析 1.1串口通信协议 1.2 RS232.485电平与TTL电平的区别 1.3 USB/TTL转232"模块 2.LED流水灯的寄存器地址 和HAL库这两种方 ...

  7. 单片机c语言编程实现中间向两边,再从两边向中间亮的程序流程图,单片机控制LED流水灯从中间向两边.doc...

    单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把 先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过这个程序实现的 应该是这样的 先 ...

  8. STM32F103C8T6以寄存器方式借助面包板搭建电路点亮LED流水灯详解

    文章目录 一.寄存器原理 1.什么是寄存器 2.如何访问寄存器 二.GPIO端口的初始化设置 1.时钟配置 (1)找到时钟使能寄存器映射基地址 (2)找到端口偏移地址以及对应端口所在位置 (3)使能对 ...

  9. 【嵌入式04】用寄存器HAL库完成LED流水灯程序

    目录 一.原理学习 1.寄存器映射原理 2.GPIO端口的初始化设置步骤 二.LED流水灯 1.程序设计思路 2.寄存器方式编程实现 3.HAL库编程实现 4.软件仿真 三.总结 四.参考链接 一.原 ...

最新文章

  1. 苹果应用上架审核规则介绍
  2. 手把手教你生信分析平台搭建
  3. Linux常见的一些性能监控命令
  4. 用linux命令通常做什么,如何知道你在 Linux 里最常使用的几个命令?
  5. mapreduce 算法_MapReduce算法–了解数据联接第1部分
  6. 于变局中开新局!《2021中国SaaS市场研究报告》报告发布
  7. UVA - 10340 ​​​​​​​All in All
  8. SPSS 多重共线性问题【SPSS 039期】
  9. WebView基本使用
  10. mysql %3cforeach_RCTF 2020 Writeup
  11. css中找不到bordercolor,CSS里bordercolor要怎样使用
  12. 菜狗杯Misc你会异或吗wp
  13. 【UI设计No9】VI
  14. Excel中取值函数三剑客:LEFT、RIGHT、MID
  15. easyui树mysql_Easyui 创建异步树形菜单_EasyUI 教程
  16. 冬令营二月七日工作日志
  17. Linux高级服务搭建
  18. 能消除眼部疲劳的电脑桌面设置方法
  19. win10打开任务管理器的快捷键
  20. 使用MRC(机器阅读理解)方式做事件抽取任务,基于2020百度事件抽取任务

热门文章

  1. 查看git版本的cmd命令
  2. SpringDataJpa使用示例
  3. Java监听器Listener入门示例
  4. Windows服务安装卸载
  5. 创建azure服务器
  6. VS2015编译MuPDF 1.13.0源码(详细)
  7. Windows 10 下 Anaconda3 (Python 3.8) 配置 OpenCV-4.4.0
  8. 热敏电阻如何查表计算温度_如何为温度传感器选择正确的热敏电阻
  9. msc货物跟踪查询_运联研究 | 货物全程可视,能否真正消除物流信息盲点?
  10. linux ar 命令详解