按照《嵌入式Linux应用开发 完全手册》,了解寄存器的操作,编译流程,硬件执行流程。

1、按照书上编辑修改LED源代码:其中寄存器地址与IO偏移按照芯片手册和电路实际IO进行修改。我的电路使用PA0、PA1作为按键输入,PA2、PA3作为LED输出。

// File led_on_c.c#define PA_CFG0        (*(volatile unsigned long *)(0x01C20800+(0*0x24+0x00)))
#define PA_DAT      (*(volatile unsigned long *)(0x01C20800+(0*0x24+0x10)))#define BIT0   0
#define BIT1    1
#define BIT2    2
#define BIT3    3static void delay(void);int main(void)
{PA_CFG0 &= ~(0x7 << (4 * BIT0));//PA0 inPA_CFG0 &= ~(0x7 << (4 * BIT1));//PA1 inPA_CFG0 &= ~(0x7 << (4 * BIT2));//PA2 clearPA_CFG0 &= ~(0x7 << (4 * BIT3));//PA3 clearPA_CFG0 |= 0x1 << (4 * BIT2);//PA2 outPA_CFG0 |= 0x1 << (4 * BIT3);//PA3 outPA_DAT |= 0x1 << BIT2;//PA2 setPA_DAT |= 0x1 << BIT3;//PA3 setwhile(1){PA_DAT &= ~(0x1 << BIT2);//PA2 resetdelay();PA_DAT |= 0x1 << BIT2;//PA2 setdelay();if((PA_DAT & (0x1 << BIT0)) != 0x0){PA_DAT |= 0x1 << BIT3;//PA3 set    }else{PA_DAT &= ~(0x1 << BIT3);//PA3 reset}}  }static void delay(void)       // about 408ms when CPU_CLK_SRC uses OSC24M
{__asm volatile(" ldr r0, =76480  \n" " loop:cmp r0,#0  \n"" beq exit             \n"" sub r0,r0,#1         \n"" b loop           \n""exit:nop          \n");
}

2、原本按照书上编写了start.s文件,makefile文件,但经过多次尝试后发现书上的不能照抄。在网上查资料,发现全志的芯片需要一个tools工具,能够将代码端放到指定位置,以及各种初始化。从网上下载源码后,发现其中有F1C100.s对应了书上的start.s。但并不能按照书上简单组合,还需要各种辅助文件。文件已上传在我的资源中。

3、编译后,烧写到SD卡,运行效果

这个灯在500ms闪烁。按住PA0,会使PA3点亮。

参考:【荔枝派Nano】F1C100S的boothead和BROM - 哔哩哔哩

自制F1C200S demo板(六、裸机寄存器点灯)相关推荐

  1. 自制F1C200S demo板(四、TF卡启动)

    思来想去,发现使用SIPFLASH也不是百分百完美,也终于明白为何最小demo板要首推TF卡启动了. 主要是现在想学Linux驱动,但使用SPIFLASH就需要用uboot和kernel两个同时打包为 ...

  2. 自制F1C200S demo板(一、电路)

    具备FLASH下载,TF卡座,摄像头,LCD,MIC,UART等 一.原理图:如需PDF源文件可到资源下载.  二.电路:如需PDF源文件可到资源下载. 三.实物

  3. 【f1c200s/f1c100s】mangopi自制linux开发板驱动适配进度(PCB、代码开源)

    [f1c200s/f1c100s]mangopi自制linux开发板驱动适配进度(PCB.代码开源) 目前进度 过程记录博客 目前进度 目前自制的mangopi设备驱动适配已完成部分包含: 基于扫描的 ...

  4. STM32使用寄存器点灯实验

    寄存器点灯实验 操作过程 使能IO口时钟配置寄存器RCC_APB2ENR 初始化IO口模式,配置寄存器GPIOx_CRH/CRL 操作IO口,输出高低电平,配置寄存器GPIOx_ODR或者BSRR/B ...

  5. 海思Hi3519A初体验(升级DEMO板开发环境,更新CPU主频)

    拿到手的3519A demo板已经烧好了uboot,没有内核和文件系统,同时uboot也不是最新的. 所以需要先升级demo版的开发环境,即烧写 uboot.kernel.fs,这部分按照手册操作即可 ...

  6. CPU中的主要寄存器:有六类寄存器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、数据寄存器(DR)、累加寄存器(AC)、程序状态字寄存器(PSW)

    在CPU中至少要有六类寄存器:指令寄存器(IR).程序计数器(PC).地址寄存器(AR).数据寄存器(DR).累加寄存器(AC).程序状态字寄存器(PSW).这些寄存器用来暂存一个计算机字,其数目可以 ...

  7. 【10天基于STM32F401RET6智能锁项目实战第2天】(分别用库函数和寄存器点灯)

    分别用库函数和寄存器点灯 一.用寄存器点灯 二.用库函数点灯 一.用寄存器点灯 硬件分析:首先我们要先去看原理图找到相应的GPIO口 然后再去看用到的寄存器 首先我们先看一下GPIO口是挂载在AHB1 ...

  8. 【开源分享】自制STC15W408AS开发板

    [开源分享]自制STC15W408AS开发板 实物图: 和Arduino UNO板子尺寸差不多 开源平台:立创EDA 立创eda主页链接:https://oshwhub.com/perseveranc ...

  9. MT9V034六个寄存器的配置

    前言 这是我一年前总结的,我也忘了为什么是这个公式了,但在默认模式下能用... 寄存器说明: 摄像头工作在默认模式下,好像只用对以下六个寄存器进行配置寄存器配置解读如下: Window_Width r ...

最新文章

  1. BDTC 2017丨大数据在金融、交通、医疗、工业领域落地实践与应用
  2. 用AlphaGo设计材料合成实验
  3. 福州大学计算机专业排名2018,软科2018年世界一流学科排名发布 福州大学9个学科上榜...
  4. C++实现教学信息管理系统
  5. edge robert matlab,哪位熟悉matlab的大神路过瞄一眼哈
  6. Oracle中计算两个时间的时间差:
  7. 什么MySQL语句在存储过程体中是合法的
  8. 【ElasticSearch】Es 源码之 RerouteService 源码解读
  9. 中国科学院计算机研究生调剂,计算机网络信息中心2019年硕士研究生接收调剂信息公告...
  10. jtextpane设置不能选中_电脑为什么打不开指定的网站?什么是DNS解析我要如何设置DNS...
  11. Visual Studio Code 基本操作 - Windows 版
  12. Internet Explorer 10 的 User-Agent 字符串
  13. WIN7专业版纯净下载:
  14. IDA 中怎么查看函数的调用关系
  15. 一文扫尽检测类评估指标:AP、mAP、ReCall、OKS和IoU
  16. Version 28 (intended for Android Pie and below) is the last version of the legacy support library, s
  17. OpenCV——硬币检测与计数的设计实现
  18. 一本通 P1486 【黑暗城堡】
  19. ExtJs自学教程(一)
  20. OpenStack Heat服务介绍

热门文章

  1. 没有微信和QQ,用记事本也能在线聊天
  2. .chm文件是啥,以及打开方法(我电脑win7)
  3. html文本隐藏内容占位,在HTML中如何隐藏某段文字具体该怎么实现文
  4. CSS3 vw/vh 实现内容窗口自适应
  5. MFC多线程 信号量CSemaphore 临界区与互斥 事件
  6. 【Android】字体设置 Text font
  7. 为什么电磁炉加热一会就停了 电磁炉加热原理与维修技巧一点通_电磁炉电路图讲解
  8. css文件处理,安装 less-loader
  9. oracle 存储过程误删,Oracle中怎么恢复被删掉的存储过程
  10. 别让用户发呆—设计中的防呆策略