![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
韦东山嵌入式Linux学习笔记--裸板开发
_Alon_
I want be a coder!
展开
-
S3C2440裸板程序之第一个程序
一. 编写 实现点亮一个LED 1. 汇编程序代码 led_on.s: @目标: 点亮一个LED @功能: GPF4 输出低电平 @时间: 2018/06/07 .text .global _start _start: ldr r0, =0x56000050 @GPFCON 寄存器 mov r1, #0x00000100 @[9:8] = 01 ,设置GPF4为输出功能 str ...原创 2018-08-24 21:57:19 · 284 阅读 · 0 评论 -
S3C2440裸板程序之UART
本实例功能是在串口上输入一个字符,板子收到后让它的ASCII值加1后,从串口输出。 head.S .extern main .text .global _start _start: ldr sp, =4096 bl disable_watch_dog bl clock_init bl memsetup bl copy_steppingstone_to_sdram ldr pc, ...原创 2018-08-25 23:42:32 · 228 阅读 · 0 评论 -
S3C2440裸板程序之定时器
本实例首先启动MPLL提高系统时钟,初始化内存控制器,使SDRAM工作在新的HCLK下,然后将定时器0设为0.5秒产生一次中断,在中断程序里改变LED的状态。 head.S .extern main .text .global _start _start: b Reset @ 0x04: HandleUndef: b Han...原创 2018-08-25 23:32:39 · 359 阅读 · 0 评论 -
S3C2440裸板程序之中断
本实例实现按键中断来控制LED的亮灭。 head.S .extern main .text .global _start _start: b Reset HandleUndef: b HandleUndef HandleSWI: b HandleSWI HandlePrefetchAbort: b HandlePrefetchAbort HandleDataAbort: ...原创 2018-08-25 23:15:12 · 228 阅读 · 0 评论 -
S3C2440裸板程序之MMU
本实例将开启MMU, 将虚拟地址0xA0000000~0xA00010000映射到 物理地址 0x56000000~0x56100000,这样就可以通过操作地址0xA0000050,0xA0000054来控制3个LED的亮灭。 head.S .text .global _start _start: ldr sp, =4096 @ 设置栈指针,调用C函数之前要设好栈 b...原创 2018-08-25 22:31:25 · 285 阅读 · 0 评论 -
S3C2440裸板程序之SDRAM
S3C2440从Nand Flash启动CPU时, CPU会通过硬件动作将Nand Flash开始的4KB数据复制到称为Setppingstone的4KB的内部RAM中,然后跳到地址0开始执行。 本实例先使用汇编语言设置好存储控制器,使外接的SDRAM可用,然后把程序本身从Steppingstone复制到SDRAM ,最后跳到SDRAM中执行。 head.S ...原创 2018-08-25 17:13:14 · 182 阅读 · 0 评论 -
S3C2440裸板程序之Nand Flash
head.S .text .global _start _start: ldr sp, =4096 @ 运行C函数之前要设置栈指针 bl disable_watch_dog @ 关掉看门狗,否则CPU会不断重启 bl memsetup @ 使能sdram bl nand_init @ 初始化nand flash ldr r0, =0x30000000 ...原创 2018-08-25 15:18:13 · 283 阅读 · 0 评论 -
嵌入式Linux基础知识之ARM汇编指令及ATPCS
1. 相对跳转指令:b , bl ... b fun1 ... fun1: bl fun2 ... fun2: ... bl相对于b的不同之处是,跳转之后会返回bl的下一条指令的地址,将其保存在lr寄存器中。 这两条指令是位置无关指令。 2.数据传送指令mov, 地址读取伪指令ldr mov r1,r2 /*把寄存器r2的值赋值给寄存器r1*/ mov r1,...原创 2018-08-25 13:44:56 · 590 阅读 · 0 评论 -
嵌入式Linux 基础知识之Makefile
1. Makefile 规则 一个Makefile文件内容由若干规则组成, 规则的格式如下: 目标 : 依赖 命令: 这里举一个简单示例: hello:hello.c gcc -o hello hello.c clean: rm -f hello 2.Makeflie 自动变量 $@ : 表示规则的目标文件名 $^ :表示所有依赖的名字 $<...原创 2018-08-25 11:52:22 · 359 阅读 · 0 评论 -
S3C2440裸板程序之GPIO
本文介绍如何点亮裸板上的一个LED。 一. 硬件原理 LED1 电路图如下 nLED_1接的GPF4引脚 可知, nLED_1接的GPF4引脚, nLED_1输出低电平,灯亮; nLED_1输出高电平,灯灭。 下面来设置GPF4为输出引脚, 且输出低电平。 将GPFCON 的GPF4 bit[9:8] 设置为01 = Output 将GPFDAT 的bit[4] 设为...原创 2018-08-25 11:16:50 · 183 阅读 · 0 评论