S3C2440 cpu初始化(reset内容)

发布者:yunhui最新更新时间:2017-11-19 来源: eefocus关键字:S3C2440  cpu初始化  reset 手机看文章 扫描二维码
随时随地手机看文章

reset内容(start.S文件):

1、设置svc模式

设置处理器的模式为svc模式,根据ARM架构参考手册,处理器有七种工作模式:

S3C2440 <wbr> <wbr>cpu初始化(reset内容)

在程序状态寄存器讲模式设置为10011:

S3C2440 <wbr> <wbr>cpu初始化(reset内容)
汇编代码如下:

set_svc:

mrs r0, cpsr

bic r0, r0, #0x1f

orr r0, r0, #0xd3

msr cpsr, r0

mov pc,lr

2、关闭看门狗

在对应的芯片手册(我用的是S3C2440)找到看门狗相关的寄存器,并关闭看门狗定时器输出的复位信号:

S3C2440 <wbr> <wbr>cpu初始化(reset内容)
对应汇编代码:

disable_watchdog:

ldr r0, #pWTCON

mov r1, #0x0

str r1, [r0]

mov pc,lr

3、关闭中断

找到对应芯片的中断屏蔽寄存器,并关闭中断:

S3C2440 <wbr> <wbr>cpu初始化(reset内容)
对应汇编代码:

disable_interrupt:

mvn r1, #0x0

ldr r0, #4A000008

str r1, [r0]

mov pc,lr

4、关闭mmu和catch

主要包括:(1)使I/D catch内容失效(2)关闭mmu和I/D catch

在ARM920T(ARM9)参考手册找到相关寄存器,主要是寄存器1和寄存器7,并进行相应设置:

S3C2440 <wbr> <wbr>cpu初始化(reset内容)

S3C2440 <wbr> <wbr>cpu初始化(reset内容)
对应汇编代码:

disable_mmu:

mcr p15,0,r0,c7,c7,0

mrc p15,0,r0,c1,c0,0

bic r0,r0,#0x00000007

mcr p15,0,r0,c1,c0,0

mov pc,lr

完整代码:

.text

.global _start

_start:

b reset

ldr pc, _undefined_instruction

ldr pc, _software_interrupt

ldr pc, _prefetch_abort

ldr pc, _data_abort

ldr pc, _not_used

ldr pc, _irq

ldr pc, _fiq

_undefined_instruction: .word undefined_instruction

_software_interrupt: .word software_interrupt

_prefetch_abort: .word prefetch_abort

_data_abort: .word data_abort

_not_used: .word not_used

_irq: .word irq

_fiq: .word fiq 

undefined_instruction:

nop

software_interrupt:

nop

prefetch_abort:

nop

data_abort:

nop

not_used:

nop

irq:

nop

fiq:

nop

reset:

bl set_svc

bl disable_watchdog

bl disable_interrupt

bl disable_mmu

set_svc:

mrs r0, cpsr

bic r0, r0, #0x1f

orr r0, r0, #0xd3

msr cpsr, r0

mov pc,lr

#define pWTCON 0x53000000

disable_watchdog:

ldr r0, #pWTCON

mov r1, #0x0

str r1, [r0]

mov pc,lr

disable_interrupt:

mvn r1, #0x0

ldr r0, #4A000008

str r1, [r0]

mov pc,lr

disable_mmu:

mcr p15,0,r0,c7,c7,0

mrc p15,0,r0,c1,c0,0

bic r0,r0,#0x00000007

mcr p15,0,r0,c1,c0,0

mov pc,lr


关键字:S3C2440  cpu初始化  reset 引用地址:S3C2440 cpu初始化(reset内容)

上一篇:s3c2440时钟初始化
下一篇:基于ARM微处理器的液晶触摸屏的设计

推荐阅读最新更新时间:2024-03-16 15:45

s3c2440时钟频率设置
时钟源选择 在nRESET的上升沿锁存OM 引脚,两个引脚在原理图中都接地,所以都为低电平。所以MPLL的时钟源来源于晶振;UPLL的时钟源也来源于晶振。 2. 配置流程 t1时刻:上电后,晶振起振,FCLK直接由晶振产生; t2时刻:nRESET拉高,OM 被所存,晶振作为MPLL与UPLL的输入,但是由于MPLL与UPLL还未配置,所以FCLK还是工作于晶振时钟; t3时刻:软件设置PLL CONTROL REGISTER (MPLLCON & UPLLCON)寄存器,配置MDIV、PDIV、SDIV的值,决定MPLL与UPLL的输出频率;紧接着设置CLOCK DIVIDER CONTROL (CLKDIVN)寄存器,
[单片机]
基于S3C2440 处理器的支持IPv6协议防火墙设计实现
1 引言 在众多的网络安全设施中,防火墙是行之有效的重要网络安全设备,通过对网络通信进行筛选屏蔽以防未经授权的访问进出计算机网络。防火墙是位于可信网络和不可信网络之间的一道安全屏障,其最核心的任务就是管理和控制进出网络的通信量,它可以截获中途传输的数据包并进行处理,然后与事先定义好的安全策略规则相比较,并最终决定转发或丢弃该数据包。传统的防火墙通常位于一段网络的边界,它可以很好的过滤外界用户对内部网络的访问,但对内部网络的攻击却无能为力。针对此问题近年来关于新型防火墙的研究有很多,如分布式防火墙系统,嵌入式防火墙系统等。这些系统的目的是将防火墙的边界延伸,使其能够遍布网络的每一个终端设备,构建全方位的安全防护网络。 现有防火墙
[单片机]
基于<font color='red'>S3C2440</font> 处理器的支持IPv6协议防火墙设计实现
s3c2440 移值u-boot-2016.03 第2篇 支持Nand flash启动
1, 要求:在4K 的代码以内,完成 NOR NAND 类型判断,初始化 NAND 复制自身到 SDRAM ,重定向。 2, 在 /arch/arm/cpu/arm920t/ 文件夹里 添加一个 inic.c 的文件,要在这个文件里面做上面说的事情。 修改 /arch/arm/cpu/arm920t/Makefile 加入 inic.c 的 编译。 extra-y = start.o obj-y += init.o obj-y += cpu.o init.c 最后有补丁文件 3, 在 start.S 中初始化 SP 后调用 init.c 中的 初始化 NAND FLASH 和 复制 u-boot 到 SDRAM 清BSS 等
[单片机]
<font color='red'>s3c2440</font> 移值u-boot-2016.03 第2篇 支持Nand flash启动
S3C2440看门狗定时器
看门狗定时器的主要作用是在程序因为干扰而跑飞后,能够使系统复位,不至于使系统永远的死下去。它的原理与一般的定时器没有多大区别,就是先要设置好一段时间,当超过这段时间后,就从当前运行的程序中跳出进入中断处理程序中。但两者的主要差别是,一般的定时器中断是我们希望它发生的,因此我们不会在定时器中断发生前的那个时间段内干预它;而看门狗定时器中断是我们不希望它发生的,因此我们要想方设法地避免其发生。主要的方法就是在中断发生前,重新对看门狗定时器的寄存器进行赋值,使它的定时器重新开始计时。 view plain copy #include 2440addr.h #include Option.h #d
[单片机]
<font color='red'>S3C2440</font>看门狗定时器
S3C2440的GPIO在作为输入用时上拉电阻的设置
GPIO做输出使用时要加上拉电阻,因为默认的是漏极开路,高阻态,无法输出高电平。 而在输入时要根据外围电路选择是否设置上拉电阻: 在外接电路能提供高低电平时可不加上拉电阻,比如作为第二功能的ADC输入,或作为地址总线时;而且作为ADC输入时若加上上拉电阻,还会影响ADC的测量。 当外接电路能不能提供高和低电平时加上拉电阻,比如作为按键输入时,如不加上拉电阻,只能输入低电平,无法输入高电平。
[单片机]
s3c2440对nandflash的操作
nandflash在对大容量的数据存储中发挥着重要的作用。相对于norflash,它具有一些优势,但它的一个劣势是很容易产生坏块,因此在使用nandflash时,往往要利用校验算法发现坏块并标注出来,以便以后不再使用该坏块。nandflash没有地址或数据总线,如果是8位nandflash,那么它只有8个IO口,这8个IO口用于传输命令、地址和数据。nandflash主要以page(页)为单位进行读写,以block(块)为单位进行擦除。每一页中又分为main区和spare区,main区用于正常数据的存储,spare区用于存储一些附加信息,如块好坏的标记、块的逻辑地址、页内数据的ECC校验和等。 三星公司是最主要的nandf
[单片机]
基于S3C2440与EP2S15芯片实现靶场破片测速系统的设计
0 引言 破片速度是战斗部爆炸效能评估的一个重要参数。传统的靶场破片测速系统多使用多路数据采集卡设置好的参数现场采集标靶的试验波形,试验完成后再交由计算机进行后期处理和解读以获取破片速度等参数。但随着军事科技的日新月异,靶场破片测速系统需要根据实际情况现场设置的参数越来越多,参数设置的灵活性越来越强,对系统工作的实时性要求越来越高;另一方面,战斗部爆炸试验在野外进行,条件恶劣,大型设备携带不便,并为靶场破片测速系统设计提供了一个新的思路。 1 系统硬件设计 系统使用ARM+FPGA的设计方式:ARM处理器选用Samsung公司推出的基于ARM920T内核的S3C2440。S3C2440主频高达400 MHz,完全能够胜任系统工
[单片机]
基于<font color='red'>S3C2440</font>与EP2S15芯片实现靶场破片测速系统的设计
S3C2440之UART操作(FIFO中断模式)
3个独立的串口,每一个都可以利用DMA 和中断方式操作。每个包含2个64字节FIFO,一个接,一个发。 非FIFO模式相当于FIFO模式的一个寄存器缓冲模式。 每一个UART有7种状态,overrun错误,校验错误,帧错误,断点,接收缓冲区准备好,发送缓冲区为空,发送移位寄存器为空。 当接收移位寄存器中的数据传给FIFO的时候,且接收的数据触发了Rx FIFO的阀值,Rx中断产生了。 发送器中FIFO的还未发得数据到达Tx FIFO阀值的时候,Tx中断产生了。(我觉得应该理解为:发送器中FIFO发送结束,即为空的时候产生中断。) 功能:在串口上输入16字节,包括回车,然后会把输入的字符回显在串口终端
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved