找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3233|回复: 0
打印 上一主题 下一主题
收起左侧

三星S3C2440的GPIO输出驱动led

[复制链接]
跳转到指定楼层
楼主
ID:262 发表于 2014-5-20 15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从今天开始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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表