自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 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 415

原创 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 187

原创 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 254

原创 Tiny6410裸机开发笔记(四)控制icache

1. 什么是cache?基于程序访问的局限性,在主存和CPU 通用寄存器之前设置了一类高速的、容量较小的存储器,把正在执行的指令地址附件的一部分指令或数据从主存调入这类存储器,供CPU 在一段时间内使用,这对提高程序的运行速度有很大的作用。这类介于主存和CPU 之间的高速小容量存储器称作高速cache。比较常见的cache 包括icache 和dcache。icache 的使用比较简单,系统刚上电时,icache中的内容是无效的,并且icache 的功能是关闭的,往CP15 协处理器中的寄存器1 的bi

2021-06-28 13:50:05 123

原创 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 100

原创 Tiny6410裸机开发笔记(二)C语言点亮LED

1. 设置堆栈1.1 为什么调用C 函数要设置堆栈?一般来说,堆栈是程序/进程内的一块内存区域。创建进程后,会开辟出这样一块内存空间。我们使用堆栈来存储临时数据,例如一些函数的局部变量、环境变量,这些变量可以帮助我们在函数之间转换,等等。栈有三个作用:保存现场;传递参数:汇编代码调用C 函数时,需传递参数;保存临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量;1.2 如何设置栈?设置栈,其实就是设置SP 寄存器,让其指向一块可用的内存。SD 启动时,S3C6410 的内部8K

2021-06-27 12:59:53 139

原创 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 498

原创 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 344

原创 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 610

原创 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 2068

原创 u-boot-2012.10移植(一)复制Tiny6410单板

1. 下载并解压u-boot-2012.101.1 下载:u-boot-2012.10.tar.bz21.2 解压:tar -xvf u-boot-2012.10.tar.bz21.3 目录结构2. 移植步骤2.1 建立tiny6410单板2.1.1 将u-boot-2012.10/board/samsung目录下的smdk6400文件夹复制一份重命名为tiny6410u-boot...

2020-04-12 19:22:57 244

原创 diff和patch用法总结

总结一下:单个文件diff –uN from-file to-file >to-file.patchpatch –p0 < to-file.patchpatch –RE –p0 < to-file.patch多个文件diff –uNr from-docu to-docu >to-docu.patchpatch –p1 < to-docu.pa...

2020-04-12 16:54:33 410

原创 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 uImageImage Name: my...

2020-04-10 14:48:31 379

原创 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 440

原创 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 175

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除