ZYNQ 7000使用AMR CortexA9 CPU,移植freeRTOS之前首先需要了解它的基本结构和配置,侧重于一下几点
· 寄存器分布
· 中断配置
· 配套的汇编指令集
· IRAM和DRAM
PS:关于ARM的学习,个人认为,最好是以项目为驱动,为自己设定一个小项目,诸如这里讨论的移植freeRTOS,或是经典的跑马灯实验。基于设定的项目,直接去ARM官网上查找相应资料,其中英语可能会成为较大的阻碍,这就需要好好自己好好提升英语能力了。有人可能觉得百度或者各种中文论坛也不错,但我这次移植也去用了用,资料较少,而且大部分都相互抄袭,没有太多影响,作为入门的科普还行,想要进一步做项目还是得去官网。
硬件架构
ARM Cortex A9为双核结构,如下图所示,之前说的sector即为下图中的APU
其中只需要重点关注,
· ZYNQ 7000拥有两块ARMCortex A9 CPU,运行主频可配(我用的666.66667MHz)。
· 每块CPU都对应有32KB的ICache和DCache,它们共享512KB的L2 Cache和256KB的SRAM。
· 输入到sector的中断由GIC模块管理。
寄存器
ARM Cortex A9 CPU共计有37