![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NON-OS
文章平均质量分 50
基于Tiny6410的裸机开发程序笔记
fei.wan
这个作者很懒,什么都没留下…
展开
-
Tiny6410裸机开发笔记(七)串口设置之输入输出字符
1. S3C6410 UARTS3C6410 的 UART 提供了四个独立的异步串行 I / O (SIO)端口。每个异步串行 I/O(SIO)端口通过中断或者直接存储器存取(DMA)模式来操作。该 UART 使用系统时钟的时间可以支持的比特率最高为 115.2kb/s。每个UART 的通道包含了两个 64 字节收发 FIFO 存储器。每个UART包含波特率发生器、发送器、接收器和控制单元,波特率发生器的时钟源可以由PCLK, EXT_UCLK0或EXT_UCLK1产生。发送器和接收器包含64字节FIF原创 2021-06-29 11:37:15 · 422 阅读 · 0 评论 -
Tiny6410裸机开发笔记(六)初始化时钟
1. S3C6410时钟体系S3C6410有3个PLL(锁相环): APLL用于CPU(ARM Clock);MPLL用于HCLK和PCLK, 其中:HCLK用于AXI (Advanced eXtensible Interface) 高级可拓展接口和AHB (Advanced High-performance Bus) 高级高性能总线;PCLK用于APB (Advanced Peripheral Bus) 高级外围总线;EPLL用于外设,如UART、IIS、IIC等。通过外部提供的时钟源,时钟控制逻辑原创 2021-06-28 14:58:57 · 195 阅读 · 0 评论 -
Tiny6410裸机开发笔记(五)查询方式检测按键
1. 查看原理图Tiny6410 中共有8 个用户按键,原理图如下:相关的引脚信息如下图:2. 代码编写2.1 start.S.global _start_start: //外设基地址及大小告诉CPU ldr r0, =0x70000000 //ldr: load orr r0, r0, #0x13 //0x13=b10011=256M, 参见arm1176jzfs内核参考手册Page3-130 mcr p15,0,r0,c15,c2,4原创 2021-06-28 14:06:33 · 259 阅读 · 0 评论 -
Tiny6410裸机开发笔记(四)控制icache
1. 什么是cache?基于程序访问的局限性,在主存和CPU 通用寄存器之前设置了一类高速的、容量较小的存储器,把正在执行的指令地址附件的一部分指令或数据从主存调入这类存储器,供CPU 在一段时间内使用,这对提高程序的运行速度有很大的作用。这类介于主存和CPU 之间的高速小容量存储器称作高速cache。比较常见的cache 包括icache 和dcache。icache 的使用比较简单,系统刚上电时,icache中的内容是无效的,并且icache 的功能是关闭的,往CP15 协处理器中的寄存器1 的bi原创 2021-06-28 13:50:05 · 128 阅读 · 0 评论 -
Tiny6410裸机开发笔记(三)C语言调用汇编
1. 为什么要在C 语言中调用汇编函数?(1)汇编执行的代码效率更高;(2)某些操作使用汇编编写代码更方便,如对协处理器的操作;2. 代码编写2.1 start.S.global _start.global delay_start: //外设基地址及大小告诉CPU ldr r0, =0x70000000 //ldr: load orr r0, r0, #0x13 //0x13=b10011=256M, 参见arm1176jzfs内核参考手册Page3-原创 2021-06-28 13:37:49 · 101 阅读 · 0 评论 -
Tiny6410裸机开发笔记(二)C语言点亮LED
1. 设置堆栈1.1 为什么调用C 函数要设置堆栈?一般来说,堆栈是程序/进程内的一块内存区域。创建进程后,会开辟出这样一块内存空间。我们使用堆栈来存储临时数据,例如一些函数的局部变量、环境变量,这些变量可以帮助我们在函数之间转换,等等。栈有三个作用:保存现场;传递参数:汇编代码调用C 函数时,需传递参数;保存临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量;1.2 如何设置栈?设置栈,其实就是设置SP 寄存器,让其指向一块可用的内存。SD 启动时,S3C6410 的内部8K原创 2021-06-27 12:59:53 · 141 阅读 · 0 评论 -
Tiny6410裸机开发笔记(一)汇编点亮LED
开发版信息CPU: S3C6410RAM:128MBNAND: 256MB(SLC) ID:ECDA1095Touch Device: 1-wireLCD Type: S701. 查阅原理图Tiny6410 板上提供了 4 个可编程用户 LED,原理图如下:LED1,2,3,4 分别使用的 CPU 端口资源为GPK_4,5,6,72. 程序编写2.1 Start.S由原理图可知,点亮Tiny6410 的4 个LED 需如下2 个步骤:把外设的基地址告诉CPU;对于6410 来说,原创 2021-06-27 09:34:14 · 501 阅读 · 0 评论