×
单片机 > 单片机程序设计 > 详情

三星S3C2440的GPIO输出驱动led

发布时间:2020-05-23 发布时间:
|

从今天开始stm32先告一段落了,开始学习ARM920T架构三星公司的S3C2440,今天是头一天学习,感觉难度要比STM32的难度大得多,主要还是涉及到操作系统就脑袋疼,和学习51和stm32时的步骤一样,第一次都是先从IO输出学起,与stm32的IO相比,S3C2440的IO功能起码现在感觉不如stm32,和stm32一对比stm32若要驱动IO,必须先要开启对应的IO时钟,而且输出速率可为10M 3M50M,并可以配置为4种输出模式,三种输入模式,并且每个IO都能够用来产生外部中断,相比之下S3C2440的IO共130个,使用之前并不需要开启对应的IO时钟,从低功耗来说,stm32简直太强大了,而且只有24个管脚能产生外部中断。


S3C2440的GPIOA管脚比较特别,主要是它只有输出模式,没有GPAUP这个寄存器


S3C2440需要自己动手来写启动代码,必须要用汇编完成,c语言不能直接操作寄存器,启动文件包括软件初始化和硬件初始化两个部分,软件部分主要是:
1.设置堆栈
2.设置main的返回地址
3.调用main
4.清理工作

硬件部分是:
1.关闭WATCHDOG
2.时钟初始化(S3C2440的时钟最大达400M,上电时为12M)
3.SDRAM初始化

2440有两种启动方式,一是NAND启动,还有一种是NOR启动,两种方式的启动时不一样的:
NAND启动方式:

1.NAND的前4K拷贝到SRAM
2.从地址0开始执行

NOR启动方式:1.0地址指向NOR FLASH
2.从0地址开始执行
NOR的访问形势和内存访问类似,而NAND就不一样了,NOR可以向内存一样读数据,但是不可以向内存一样写数据,写入一个数据之前一定要发送擦除指令。

启动文件如下:

start:
      LDR R0,=0X53000000
      MOV R1,0x0
     
      STR R1,[R0]
     
      LDR SP,=1024*4

      BL MAIN
halt loop:
              b halt_loop

关键字:S3C2440  GPIO输出  驱动led 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32单片机的复用端口初始化的步骤及方法