自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 tiny6410DMA程序设计

/*S3C6410中DMA操作步骤:1、决定使用安全DMAC(SDMAC)还是通用DMAC(DMAC);2、开始相应DMAC的系统时钟,并关闭另外一组的时钟(系统默认开启SDMA时钟);3、开启DMAC控制,设置DMAC_Configuration寄存器;4、清除传输结束中断寄存器和错误中断寄存器;5、选择合适的优先级通道;6、设置通道的源数据地址和目的数据地址(设置D

2017-04-27 21:20:12 338

原创 tiny6410串口驱动程序设计

建立文件uart.c。#define GPACON     (*((volatile unsigned short *)0x7F008000))#define ULCON0     (*((volatile unsigned long *)0x7F005000))#define UCON0       (*((volatile unsigned long *)0x7F005004))

2017-04-27 16:18:58 403

原创 tiny6410 nandflash驱动设计

按页的方式读,写驱动1、读操作创建文件nand.c#define NFCONT (volatile unsigned long*)0x70200004#define NFSTAT (volatile unsigned long*)0x70200028#define NFCMMD (volatile unsigned long*)0x70200008#define NFADD

2017-04-25 10:12:20 326

原创 tiny6410 通过按键玩中断

按键中断就是设置tiny6410上的GPIO,通过手册可知,需要设置寄存器GPNCON跟GPLCON控制寄存器,首先start.S修改中断初始化init_stack:msr cpsr_c, #0xd2ldr sp, =0x53000000 //初始化r13_irqmsr cpsr_c, #0xd3ldr sp, =0x54000000 //初始化r13_svcm

2017-04-24 19:56:54 415

原创 tiny6410的MMU的配置于使用

由手册《Arm1176jzfs》的第六节可知,tiny6410MMU的配置与使用需要分三步:1、建立一级页表/*  * 用于段描述符的一些宏定义 */ #define MMU_FULL_ACCESS     (3 #define MMU_DOMAIN          (0 #define MMU_SPECIAL         (1 #define MMU_CAC

2017-04-24 09:02:14 437

原创 tiny6410的C语言环境初始化

1、栈的初始化(弄清楚栈的概念和作用)init_stack:ldr sp, =0x54000000mov pc, lr2、bss段初始化初始化的全局变量->数据段局部变量->栈malloc->堆未初始化的全局变量->bss段bss段初始化就是bss全段清零。clean_bss:ldr r0, =bss_startldr r1, =bss_endc

2017-04-21 22:19:10 474

原创 tin6410代码搬移

copy_to_ram:ldr r0, =0x0c000000ldr r1, =0x50008000add r3, r0, #1024*4copy_loop:ldr r2, [r0], #4str r2, [r1], #4cmp r0, r3bne copy_loopmov pc, lr把垫脚石的内容搬移到内存当中。

2017-04-21 22:10:40 229

原创 tiny6410内存初始化

tiny6410存储控制器由手册《S3C6410X》的第五章节介绍。根据5.4.1小节的流程来完成初始化 ,初始化分为六步来完成:1、Program memc_cmd to ‘3’b100’, which makes DRAM Controller enter ‘Config’ state. 代码如下:ldr r0, =0x7e001004    mov r1, 0x4    

2017-04-21 18:00:09 431

原创 tiny6410时钟初始化

时钟初始化首先要了解芯片的时钟频率是多少HZ?有多少PLL?PLL都产生了哪些时钟?这些时钟都是干什么的?参考手册《S3C6410X》。时钟初始化分为五步:1、设置locktime。2、设置分频系数。3、设置CPU到异步工作模式。4、设置APLL和MPLL。5、选择晶振源第一步设置locktime一般选择默认值,第二步设置分频系数比例参考uboot,设置分频系数主要

2017-04-20 19:38:48 489

原创 tiny6410LED驱动设计

在tiny6410的led首先要把外设基地址初始化。由手册《S3C6410X》手册可知tiny6410的基地址是0x70000000,然后根据手册《Arm1176jzfs》的cp15的c15寄存器设置初始化基地址。外设基地址初始化要加在svc初始化的下面。set_peri_port:ldr r0, =0x70000000orr r0,r0,#0x13mcr p15,0,r0

2017-04-20 16:41:14 274

原创 tiny6410关闭mmu和cache

关闭mmu和cache要分成两步,首先要使i,dcache无效,然后关闭i,dcache和mmu。mmu跟cache的控制寄存器在手册《Arm1176jzfs》中,主要是设置cp15寄存器。c1是控制寄存器,主要是设置c1.设置的汇编代码格式已经在手册中给出,可以自己查阅手册。在reset处设置跳转指令bl disable_mmu代码如下disable_mmu:mcr

2017-04-14 15:52:22 361

原创 tiny6410关闭中断

tiny6410屏蔽中断首先要设置cpsr的I位跟F位为1,这个在设置svc模式的时候已经完成了。第二步就要设置屏蔽中断寄存器,在手册《S3C6410X》中的12节有中断寄存器的内容。INTERRUPT ENABLE REGISTER,VICINTENABLE寄存器只能使能中断而不能屏蔽中断,要屏蔽中断就要设置INTERRUPT ENABLE CLEAR ,VICITENCLEAR寄存

2017-04-14 15:09:25 280

原创 tiny6410关闭看门狗

关闭看门狗,主要是设置看门狗控制寄存器,在手册《S3C6410X》的34节中提到了看门狗,由手册可知看门狗控制寄存器WATCHDOG TIMER CONTROL REGISTER,简称WOCON。有手册可知该寄存器的地址为0x7e004000.关闭看门狗是第0位,关闭重启为第1位,关闭中断信号位第2位。我们可以把该寄存器的16位全部设置为0.在reset的处加上跳转编号bl d

2017-04-14 14:41:57 422

原创 设置tiny6410的svc模式

要设置用户工作在svc模式,是通过程序状态寄存器来设置的,程序状态寄存器有cpsr跟spsr,设置工作模式主要是设置cpsr,由手册可知,要设置svc模式,只要设置cpsr的M位为10011即可。设置思路可以分为两步,第一步把这五位全部清零,第二步,根据位置置一。然后在reset处加上 bl set_svcset_svc:mrs r0, cpsrbic r0, r0,#0x

2017-04-14 14:05:35 268

原创 tiny6410异常向量表初始化

tiny6410异常向量表的初始化

2017-04-14 10:54:47 282

原创 arm伪指令

arm伪指令

2017-04-09 16:28:16 202

翻译 arm基础汇编指令小结

arm汇编指令分类

2017-04-09 10:09:18 416

原创 链接器脚本的设计

SECTION {. = 0x00;                          //设置起始地址;. = ALIGN(4);                  //4字节对其;.text :{start.o(.text)                  //指明代码段首文件;*(.text)}. = ALIGN(4);.data :{*(.da

2017-04-06 22:37:01 235

原创 交叉工具链小结

vim hello.c                      //首先建立一个.c的文件gcc -static hello.c -o hello     //静态编译//这个编译好的程序只能在linux上运行   ,下载到开发板上就不能运行了。arm-linux-gcc    -o  是指定编译完成的文件名     -c    只编译不连接 //编译arm-linux-ld -

2017-04-06 11:12:30 370

原创 交叉编译点亮小灯

makefile文件如下all: led.o arm-linux-ld -Tled.lds -o led.elf led.oarm-linux-objcopy -O binary led.elf led.binled.o : led.Sarm-linux-gcc -g -o led.o -c led.S.PHONY: cleanclean:r

2017-04-06 10:26:09 429

空空如也

空空如也

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

TA关注的人

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