读书笔记| (二)ARM9 嵌入式学习:代码 & 原理篇

读书笔记| ARM9 嵌入式学习

读书笔记| ARM9 嵌入式学习

1. 启动代码


1.1 功能:ARM处理器初始化

  • 硬件初始化
  • 程序代码的搬移
  • 程序为C,硬件无法识别,须初始化程序运行环境

1.2 代码实现流程步骤

  • 建立异常中断向量表

    • 硬件固有的向量表,硬件实现,简单跳转
    • 软件设定的向量表,进一步确定中断源
  • 初始化各模式的堆栈

  • 初始化硬件

    • 关闭看门狗
    • 屏蔽所有中断
    • 初始化pll和系统时钟
    • 初始化存储系统(SDRAM...)
      • 对存储器控制器的初始化
      • 即是对13个寄存器的初始化
        • 与存储器控制器相关
        • 设定外部数据总线相关参数
  • 初始化应用程序执行环境
    将代码和数据全部复制到SDRAM中

  • 跳转到主程序

    • 方法一:b Main
    • 方法二:调用标准C库函数__main()

1.3 相应外部中断的pro执行流程

  • 切换模式
    • 处理器执行完当前指令
    • 将当前cpsr保存到IRQ模式下spsr上
    • PC-4存放到IRQ模式下的R14上
  • 硬件强制将PC指向中断向量表0x18处
    • b HandlerIRQ
  • 执行HandlerIRQ,获取IsrIRQ地址
  • 跳到该地址2次查表,找具体中断服务函数地址
  • 跳到中断服务程序执行
  • 执行中断,返回

2. ARM可执行程序的映像文件


  • 文件结构
    • ZI: 未初始化的数据段
    • RW: 可读/写数据段
    • RO: 代码,只读数据段
    • 加载域
    • 运行域

3. Nand/Nor


3.1 Nand:

  • 对应PC硬盘,容量大,断电数据不丢失
  • 无法直接寻址
  • 须有控制器控制

3.2 Nor:

  • 容量小,断电数据不丢失
    与SDRAM的区别
  • 可直接寻址
  • 用于执行小程序

3.3 启动方式:

  • nor启动
    • 上电后直接执行nor中程序
    • 执行一小段后,将程序搬移到SDRAM中
  • nand启动
    • 上电后,将nand前4k数据复制到Stepping Stone
    • 执行SStone中的程序
      该程序中会实现将所有程序从搬到SDRAM中
    • 跳到SDRAM执行

4、系统时钟


4.1 S3C2440处理器有关时钟

  • Fin: 外部晶振频率
  • FCLK用于CPU核
  • HCLK
    • 用于AHB总线互连的设备上
    • AHP上的外设
      • 存储器控制器
      • LCD控制器
      • 中断控制器
  • PCLK
    • 用于APB总线互连的低速设备上
    • ADC/UART/GPIO/RTC/IIC/SPI

4.2 锁相环(MPLL、UPLL):实现倍频

4.3 相关控制寄存器

MPLLCON: 控制FCLK和Fin的比例关系
CLKDIVN: 控制FCLK、HCLK、PCLK比例关系

4.4 系统时钟初始化流程

  • 刚上电,FCLK=Fin
  • 复位信号nRESET恢复高电平,开始生成时钟频率
  • 锁相环捕获,需要一定时间(LockTime)
  • 锁相环输出新频率值

5、中断


5.1 定义

ARM处理器与各类外部设备进行通信的方式之一

5.2 中断类型

  • 硬中断: 硬件设备出发的中断
  • 软中断:
    • 软件触发
    • 具体是由某段程序代码触发的
    • 该函数需加swi关键字

5.3 相关寄存器

  • 中断寄存器
    • SRCPND
    • SUBSRCPND
  • 中断屏蔽寄存器
    • INTMSK
    • INTSUBMSK
  • INTOFFSET
  • 中断模式寄存器
    • INTMODE
  • 中断优先级寄存器

5.4 中断处理流程

  • 中断源将中断请求发送给中断控制器

    • 中断产生,SUBSRCPND相应位置1
    • 如果INTSUBMSK不对相应位进行屏蔽,SRCPND也置一
  • 中断控制器将最需要处理的中断请求发送给CPU

  • cpu保存现场,切换工作模式(IRQ),响应中断

    • 非独立寄存器放该模式下的堆栈
    • 将该模式下的CPSR保存到即将进入的模式的SPSR中
    • ???将pc减4存进R14
      * R14=PC-4
      * 减4的原因: 要返回发生中断指令的下一条指令处执行
    • PC值设为0X00000018,中断向量表中IRQ的入口地址
  • 调用中断处理程序,识别具体中断源,并进行处理

  • 从中断处理程序中返回,恢复现场,接着执行

5.5 清除中断

  • 对中断寄存器清除中断,与其他寄存器不同
  • 写1清除中断标志,清除之后相应位值为0

5.6 相关要点

  • 切换cpu工作模式时,非独立的寄存器值需要入堆栈
  • 为什么FIQ比IRQ中断响应速度快?

FIQ独立寄存器数多于IRQ,独立寄存器不需入栈保存

6 存储器控制器


6.1 用途:提供CPU访问外部设备所需的信号

6.2 地址空间:128MB/BANK、8个BANK,总寻址空间1GB

  • s3c2440的cpu具有32位地址、数据总线
  • 但地址线只引出27根,即最大寻址空间128M
  • 每个128m作为一个BANK,引出8跟片选信号nGCSx,实现1G
  • 理论物理地址空间可达4g
    • 除去1G外设空间
    • cpu内部使用的特殊功能寄存器地址空间

6.3 SDRAM

  • 同步动态随机存取内存
  • 内部结构: 存储阵列,由行、列、逻辑存储体组成

6.3.1 工作原理:

  • 读操作需控制线、地址线配合发出一系列命令来完成
  • 发出L-BANK激活命令,锁存相应L-BANK地址
  • 指定行、列,找到所需单元格
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容