- 博客(15)
- 收藏
- 关注
原创 Tiny6410裸机开发笔记(七)串口设置之输入输出字符
1. S3C6410 UART S3C6410 的 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
489
原创 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
232
原创 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
300
原创 Tiny6410裸机开发笔记(四)控制icache
1. 什么是cache? 基于程序访问的局限性,在主存和CPU 通用寄存器之前设置了一类高速的、容量较小的存储器,把正在执行的指令地址附件的一部分指令或数据从主存调入这类存储器,供CPU 在一段时间内使用,这对提高程序的运行速度有很大的作用。这类介于主存和CPU 之间的高速小容量存储器称作高速cache。 比较常见的cache 包括icache 和dcache。icache 的使用比较简单,系统刚上电时,icache中的内容是无效的,并且icache 的功能是关闭的,往CP15 协处理器中的寄存器1 的bi
2021-06-28 13:50:05
188
原创 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
146
原创 Tiny6410裸机开发笔记(二)C语言点亮LED
1. 设置堆栈 1.1 为什么调用C 函数要设置堆栈? 一般来说,堆栈是程序/进程内的一块内存区域。创建进程后,会开辟出这样一块内存空间。我们使用堆栈来存储临时数据,例如一些函数的局部变量、环境变量,这些变量可以帮助我们在函数之间转换,等等。栈有三个作用: 保存现场; 传递参数:汇编代码调用C 函数时,需传递参数; 保存临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量; 1.2 如何设置栈? 设置栈,其实就是设置SP 寄存器,让其指向一块可用的内存。SD 启动时,S3C6410 的内部8K
2021-06-27 12:59:53
168
原创 Tiny6410裸机开发笔记(一)汇编点亮LED
开发版信息 CPU: S3C6410 RAM:128MB NAND: 256MB(SLC) ID:ECDA1095 Touch Device: 1-wire LCD Type: S70 1. 查阅原理图 Tiny6410 板上提供了 4 个可编程用户 LED,原理图如下: LED1,2,3,4 分别使用的 CPU 端口资源为GPK_4,5,6,7 2. 程序编写 2.1 Start.S 由原理图可知,点亮Tiny6410 的4 个LED 需如下2 个步骤: 把外设的基地址告诉CPU;对于6410 来说,
2021-06-27 09:34:14
592
原创 u-boot-2012.10移植(四)DM9000网卡
1. 代码修改 1.1 修改include/configs/tiny6410.h,屏蔽CS9000的宏定义,增加DM9000的宏定义 /* * Hardware drivers */ #if 0 #define CONFIG_CS8900 /* we have a CS8900 on-board */ #define CONFIG_CS8900_BASE 0x18800300 ...
2020-05-01 13:11:14
387
原创 u-boot-2012.10移植(三)MMC驱动
上期通过三星Internal ROM Application Note提供了启动设备的复制函数,实现了u-boot从sd卡启动。本期完成MMC驱动的移植。 1. 代码修改 1.1 修改include/configs/tiny6410.h,增加 /* MMC */ #define CONFIG_GENERIC_MMC 1 #define CONFIG_MMC 1 #define CONFI...
2020-05-01 12:32:01
711
原创 u-boot-2012.10移植(二)MMC启动
1. 启动方式 6410支持SD/MMC Card, OneNand, Nand启动方式。由于我手上的这款开发板采用的MLC2的Nand Flash(K9GAG08U0E),适合1KBytes/12 bit 硬件ECC校验,而6410 最大支持 512 Bytes/8 bit 硬件ECC校验,所以S3C6410在硬件上根本就不支K9GAG08U0E,友善之臂采用了软件和硬件结合的ECC校验,没有提...
2020-04-14 17:16:08
2208
原创 u-boot-2012.10移植(一)复制Tiny6410单板
1. 下载并解压u-boot-2012.10 1.1 下载:u-boot-2012.10.tar.bz2 1.2 解压:tar -xvf u-boot-2012.10.tar.bz2 1.3 目录结构 2. 移植步骤 2.1 建立tiny6410单板 2.1.1 将u-boot-2012.10/board/samsung目录下的smdk6400文件夹复制一份重命名为tiny6410 u-boot...
2020-04-12 19:22:57
310
原创 diff和patch用法总结
总结一下: 单个文件 diff –uN from-file to-file >to-file.patch patch –p0 < to-file.patch patch –RE –p0 < to-file.patch 多个文件 diff –uNr from-docu to-docu >to-docu.patch patch –p1 < to-docu.pa...
2020-04-12 16:54:33
458
原创 Tiny6410 TFTP下载Linux内核 NFS启动文件系统
1. TFTP下载Linux内核 1.1 使用u-boot提供的mkimage工具将zImage制作成uImage [wf@localhost tools]$ ./mkimage -n 'my_kernel' -A arm -O linux -T kernel -C none -a 0x50008000 -e 0x50008040 -d zImage uImage Image Name: my...
2020-04-10 14:48:31
444
原创 Tiny6410 SD卡启动裸机程序
根据"S3C6410 Internal ROM Booting"手册,6410的启动流程如下: ① iROM(BL0)自动进行初始化启动:初始化系统时钟、D-TCM,、设备控制器、启动设备(SD/MMC Card, OneNand, Nand)。 ② iROM将启动设备中的bootloader中的4KB代码加载到SRAM中,这8KB boot loader叫做BL1。 ③ BL1: 初始化系统时...
2020-04-03 17:56:30
498
原创 Tiny6410 MLC2 UCGUI
Tiny6410 MLC2 UCGUI硬件配置及软件平台运行效果图关键代码1. LCD S70驱动程序2. 修改UCGUI中的LCDTemplate.c3. 使用Timer0定时中断,在中断服务函数中更新OS_TimeMS源码下载 硬件配置及软件平台 开发板:Tiny6410, MCL2 2GB Flash, 256M DDR 显示屏:S70 交叉编译: gcc-3.4.5-glibc-2.3.6...
2020-04-03 17:17:07
306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人