个人感悟:学习ARM最有系统的办法就是通读芯片手册全文,从最开始引言部分(特别重要),如果时间不够,就读最开始的引言+产品概述+程序员模型+指令集。

目录:

1.芯片结构认识:

2.所有的开发板特殊功能(如:LED灯显示、按键控制、看门狗、时钟分频、串口),都是建立在S3C2440芯片内特殊功能模块的特殊功能寄存器组的使用

1.芯片结构认识:

引言:

ARM公司设计的 16/32 位ARM920T 的 RISC 处理器。ARM920T 实现了 MMU,AMBA 总线和哈佛结构高速缓冲体系结构。这一结构具有独立的 16KB 指令高速缓存和 16KB 数据高速缓存。每个都是由具有 8 字长的行(line)组成。

通过提供一套完整的通用系统外设,S3C2440A 减少整体系统成本和无需配置额外的组件。综合对芯片的功能描述,本手册将介绍 S3C2440A 集成的以下片上功能:
● 1.2V 内核供电, 1.8V/2.5V/3.3V 储存器供电, 3.3V 外部 I/O 供电,具备 16KB 的指令缓存和 16KB 的数据缓存和 MMU的微处理器
● 外部存储控制器(SDRAM 控制和片选逻辑)
● LCD 控制器(最大支持 4K 色 STN 和 256K 色 TFT)提供 1 通道 LCD 专用 DMA
● 4 通道 DMA 并有外部请求引脚
● 3 通道 UART(IrDA1.0, 64 字节发送 FIFO 和 64 字节接收 FIFO)
● 2 通道 SPI
● 1 通道 IIC 总线接口(支持多主机)
● 1 通道 IIS 总线音频编码器接口
● AC’97 编解码器接口
● 兼容 SD 主接口协议 1.0 版和 MMC 卡协议 2.11 兼容版
● 2 通道 USB 主机/1 通道 USB 设备(1.1 版)
● 4 通道 PWM 定时器和 1 通道内部定时器/看门狗定时器
● 8 通道 10 位 ADC 和触摸屏接口
● 具有日历功能的 RTC
● 摄像头接口(最大支持 4096×4096 像素输入;2048×2048 像素输入支持缩放)
● 130 个通用 I/O 口和 24 通道外部中断源
● 具有普通,慢速,空闲和掉电模式

● 具有 PLL 片上时钟发生器

芯片特性(摘取部分):

时钟和电源管理
● 片上 MPLL 和 UPLL:
                   UPLL 产生时钟运作 USB 主机/设备
                   MPLL 产生时钟运作 1.3V 下最高 400MHz 的 MCU
● 用软件可以有选择的提供时钟给各功能模块
● 电源模式:普通、慢速、空闲和睡眠模式
                   普通模式:正常运行模式
                   慢速模式:无 PLL 的低频率时钟
                   空闲模式:只停止 CPU 的时钟
                   睡眠模式:关闭包括所有外设的核心电源

● EINT[15:0]或 RTC 闹钟中断触发从睡眠模式中唤醒

中断控制器

● 60 个中断源(1 个看门狗,5 个定时器, 9 个 UART,24 个外部中断,4 个 DMA,2 个 RTC,2 个 ADC,1 个 IIC,2 个    SPI,1 个 SDI,2 个 USB,1 个 LCD,1 个电池故障,1 个 NAND,2 个摄像头,1 个 AC ’ 97)
● 外部中断源中电平/边沿模式
● 可编程边沿和电平的极性

● 支持快速中断请求(FIQ)给非常紧急的中断请求

通用输入/ 输出端口

● 24 个外部中断端口

● 130 个复用输入/输出端口

DMA  控制器

● 4 通道 DMA 控制器

● 支持存储器到存储器,IO 口到存储器,存储器到IO 口和 IO 口到 IO 口的传输

● 采用触发传输模式来提高传输速率

UART
● 3 通道基于 DMA 或基于中断运行的 UART
● 支持 5 位、6 位、7 位、或 8 位串行数据发送/接收
● 支持 UART 运行在外部时钟(UEXTCLK)
● 可编程波特率
● 支持 IrDA 1.0
● 测试用回环模式
● 每个通道都包含内部 64 位发送 FIFO 和 64 位接收 FIFO

看门狗定时器
● 16 位看门狗定时器

● 中断请求或系统复位超时

工作电压范围
● 核心电压: 300MHz 下 1.20V
                    400MHz 下 1.30V
● 存储器电压: 1.8V/2.5V/3.0V/3.3V

● I/O 口电压: 3.3V

工作频率
● Fclk 最高 400MHz
● Hclk 最高 136MHz

● Pclk 最高 68MHz

封装
● 289-FBGA

引脚分配:

S3C2440A 引脚分配(289-FBGA),(A~U)*(1~17)=17*17=289个引脚

信号端描述(摘录):

S3C2440A 特殊寄存器(摘录):

************************************************************************************

I/O端口:

端口F控制寄存器(GPFCON, GPFDAT)

如果GPF0 GPF7在关机模式下用于唤醒信号,端口将设置为中断模式。

************************************************************************************************

2.所有的开发板特殊功能(如:LED灯显示、按键控制、看门狗、时钟分频、串口),都是建立在S3C2440芯片内特殊功能模块的系列特殊寄存器的使用。

例如:

(1)LED、按键是直接配置2440相应的输出控制引脚、数据引脚,File:led_on1.S例程:

/*配置邋邋GPF4为输出引脚,把0X10写到地址0X56000050*/
LDR R1, =0X56000050
LDR R0, =0X100 //或者 MOV R0, 0X100,GPFCON = 0X0000 0100
STR R0, [R1]
/*设置邋邋GPF4为低电平输出0,写到地址:0x56000054*/
LDR R1, =0x56000054
LDR R0, =0 //GPFDAT = 0x0000 0000

STR R0, [R1]

其中,仅仅使用了寄存器GPFCON = 0X0000 0100和GPFDAT = 0x0000 0000

GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。在嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适。所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。接口至少有两个寄存器,即“通用IO控制寄存器”与“通用IO数据寄存器”。数据寄存器的各位都直接引到芯片外部,而对数据寄存器中每一位的作用,即每一位的信号流通方向时输入还是输出,则可以通过控制寄存器中对应位独立的加以设置。这样,有无GPIO接口也就成为微控制器区别于微处理器的一个特征。

在实际的MCU中,GPIO是有多种形式的。比如,有的数据寄存器可以按照位寻址,有些却不能按照位寻址,这在编程时就要区分了。比如传统的8051系列,就区分成可位寻址和不可位寻址两种寄存器。另外,为了使用的方便,很多mcu把glue logic等集成到芯片内部,增强了系统的稳定性能,比如GPIO接口除去两个标准寄存器必须具备外,还提供上拉寄存器,可以设置IO的输出模式是高阻,还是带上拉的电平输出,或者不带上拉的电平输出。这在电路设计中,外围电路就可以简化不少。

另外需要注意的是,对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。如果系统结构支持独立的IO地址空间,并且是端口映射,就必须使用汇编语言完成实际对设备的控制,因为C语言并没有提供真正的“端口”的概念。如果是内存映射,那就方便的多了。举个例子,比如像寄存器A(地址假定为0x48000000)写入数据0x01,那么就可以这样设置了。

引用链接:https://blog.csdn.net/liangkaiming/article/details/6307410

(2)看门狗

File: start.S 例程:

其中,仅仅使用了看门狗的控制位[0x53000000]

(3)时钟分频

File: start.S 例程:

LOCKTIME  0x4C000000 ←  W  R/W  PLL lock time counter(保持默认值)
MPLLCON  0x4C000004 MPLL control(主时钟源设置= (92<<12)|(1<<4)|(1<<0))
UPLLCON  0x4C000008 UPLL control(USB时钟源保持默认值)
CLKCON  0x4C00000C Clock generator control(控制各外部设备,如:UART、IIC、GPIO等的使能,保持默认(使能1))
CLKSLOW  0x4C000010 Slow clock control(时钟慢速控制及寄存器保持默认值)
CLKDIVN  0x4C000014 Clock divider control(分频:T-FCLK :T- HCLK :T- PCLK=1:4:8)
CAMDIVN  0x4C000018 Camera clock divider control(摄像头分频寄存器:保持默认值)

其中,用到了寄存器LOCKTIME【0x4C000000 】(保持默认值),CLKDIVN【0x4C000014 】,MPLLCON [0x4C000004  ]寄存器的设置和应用

(4)串口

(5)

【归纳】对于S3C2440A芯片的认知和使用理论再学习相关推荐

  1. FL2440(S3C2440A 芯片) 开发板开发笔记

    FL2440(S3C2440A 芯片) 开发板开发笔记 开发板的拨码开关指南: FL2440 改 vnfg 飞凌嵌入式 www. witech. com. cn 09. 8. 22 1 开发板使用手册 ...

  2. 珍大户《认知世界的经济学》学习笔记 --第19课 时间补偿 第20课 利率 国债 MLF SLF OMO 利率

    珍大户<认知世界的经济学>学习笔记 – 第五章 第19课 时间补偿 文章目录 珍大户<认知世界的经济学>学习笔记 -- 第五章 第19课 时间补偿 把钱借给国家 通货膨胀程度 ...

  3. 【归纳】S3C2440A之ARM学习的所有的问题:

    目录: 问题1:关于Nor/Nand启动判断的问题: 问题2:程序烧写到什么位置啦(即程序的存储位置)?Norflash/Nandflash? 问题3:Nor启动,SRAM除了存储寄存器sp之类,还有 ...

  4. 归纳2018:芯片已先行,5G终端触手可及

    https://www.toutiao.com/i6638941635658908174/ 2018-12-25 22:44:14 <AI先锋周刊>是-家关注人工智能学术研究.产业生态链. ...

  5. 计算机和认知神经科学,机器如何自己学习?认知神经科学推动人工智能发展

    当你走进大兴机场,你可以向实体机器人询问路径指导,可以自助值机托运,也可以看见实体机器人在人来人往之间穿梭自如,你所感受到的便是大兴机场所运用的"黑科技".而这背后,人工智能功不可 ...

  6. 【理论知识学习32】归纳偏差与选择性偏差(概念作用以及举例说明)

    呆呆象呆呆的所有博客目录 一.inductive bias 归纳偏置 1.1 背景与概念介绍 No-Free-Lunch (不存在免费午餐理论)提出没有先验知识进行学习是不可能的.如果我们不对特征空间 ...

  7. 人工智能学习总结(1)——人工智能的三个分支:认知、机器学习、深度学习

    人工智能进入了一切领域--从自动驾驶汽车,到自动回复电子邮件,再到智能家居. 你似乎可以获得任何商品(例如医疗健康,飞行,旅行等),并通过人工智能的特殊应用使其更加智能.所以除非你相信事件具有终结者般 ...

  8. 海外研发2nm,中国推进石墨烯芯片实现弯道超车,将再无需光刻机

    在台积电和Intel争相宣布2nm乃至1nm级别工艺进展的时候,中国却在另辟蹊径研发石墨烯芯片,绕开当前光刻机对中国芯片的阻碍,力求实现弯道超车,这对于ASML可能是重大打击. 当前台积电和Intel ...

  9. 人工智能的三个分支:认知、机器学习、深度学习

    人工智能进入了一切领域--从自动驾驶汽车,到自动回复电子邮件,再到智能家居. 你似乎可以获得任何商品(例如医疗健康,飞行,旅行等),并通过人工智能的特殊应用使其更加智能.所以除非你相信事件具有终结者般 ...

  10. 中科寒武纪 AI 芯片弯道超车:NPU 为深度学习而 生、指令集是产业根本

    人工智能领域深度学习兴起:神经网络规模快速增长,对计算能力需求提升.深度学习技术评为 2013 年十大突破性技术之首,带动了人工智能的再次兴起:深度学习凭借其更加优秀的拟合能力, 在语音识别.图像处理 ...

最新文章

  1. Java项目:在线高中考试系统(java+SSM+Jsp+Mysql+Maven)
  2. 无线红外探测器02-硬件设计
  3. 浅谈Java网络编程之Socket (2)
  4. vb定义模块且使用模块_ET200S 1 STEP 步进模块使用入门
  5. replaced element / non-replaced element : 内容决定
  6. java 捕获特定异常_java – 使用特定消息捕获异常
  7. go micro 学习笔记 2:环境搭建(可运行示例)
  8. js中的 return false;
  9. Java笔记-Java端口扫描功能(含TCP包分析以及原理)
  10. python在匿名函数作和_python之路——内置函数和匿名函数
  11. Waymo已经开始绘制亚特兰大地图数据,自动驾驶汽车路测地点又添新城
  12. PMP项目管理培训课程
  13. 科研管理系统java源码_(高校科研管理系统)
  14. Nginx源码安装(CentOS7)
  15. 2020-2023保时捷Taycan维修手册电路图技术培训手册用户手册电动汽车技术资料
  16. springboot聚合工程打包报错Compilation failure浅析
  17. 2016年山西医科大汾阳学院实验1,实验2
  18. MAC install MySQL and DBeaver
  19. Tomcat:Tomcat网站上的core和deployer的区别
  20. 【区块链 | AAVE】一文讲清-DeFI王者AAVE最新的稳定币GHO提案

热门文章

  1. 一个超赞的开源串口虚拟示波器项目,玩起来!
  2. 让百度、GOOGLE、搜狗、有道等搜到你的博客
  3. python plot_surface 画表面网格图
  4. 笔记本计算机管理没有键盘,如何禁用笔记本键盘输入?怎么关闭笔记本键盘
  5. 电脑蓝色,我的电脑蓝色是怎么回事
  6. LeetCode 刷题: Fizz Buzz
  7. ICLR 2020 图神经学习论文汇总
  8. ASP.NET免费发送邮件|
  9. Javascrpt测试
  10. iQOO刷鸿蒙系统,iQOO招募Android12 Beta版即将到来,网友:我想要鸿蒙系统!