初始化
文章平均质量分 52
第五世家
在校学生
展开
-
tiny6410异常向量表初始化
tiny6410异常向量表的初始化原创 2017-04-14 10:54:47 · 288 阅读 · 0 评论 -
设置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 · 278 阅读 · 0 评论 -
tiny6410关闭中断
tiny6410屏蔽中断首先要设置cpsr的I位跟F位为1,这个在设置svc模式的时候已经完成了。第二步就要设置屏蔽中断寄存器,在手册《S3C6410X》中的12节有中断寄存器的内容。INTERRUPT ENABLE REGISTER,VICINTENABLE寄存器只能使能中断而不能屏蔽中断,要屏蔽中断就要设置INTERRUPT ENABLE CLEAR ,VICITENCLEAR寄存原创 2017-04-14 15:09:25 · 291 阅读 · 0 评论 -
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 · 369 阅读 · 0 评论 -
tiny6410时钟初始化
时钟初始化首先要了解芯片的时钟频率是多少HZ?有多少PLL?PLL都产生了哪些时钟?这些时钟都是干什么的?参考手册《S3C6410X》。时钟初始化分为五步:1、设置locktime。2、设置分频系数。3、设置CPU到异步工作模式。4、设置APLL和MPLL。5、选择晶振源第一步设置locktime一般选择默认值,第二步设置分频系数比例参考uboot,设置分频系数主要原创 2017-04-20 19:38:48 · 499 阅读 · 0 评论 -
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 · 437 阅读 · 0 评论 -
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 · 483 阅读 · 0 评论 -
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 · 343 阅读 · 0 评论