存储器映像学习
外设帧是数据空间的分配,只能是外设寄存器的存放位置。
.c文件-->.obj文件(包含各自的段)-->合并段-->生成out文件
个人定义段
代码定义、数据定义段。先定义这个段,然后才能使用段
CMD文件的编写
cmd文件主要的目的是给段分配空间
第一,指示存储空间,MEMORY中的----PAGE0--程序、PAGE1--数据
第二,分配段搭配存储空间 ,SECTION进行分配
我们写CMD时候,合并MEMORY中的部分变量,然后在SECTION 中将需要修改的加载到相关的地址中。单独开辟变量的属于输入外部存储了,按照这个思路应该是可以的。
主要通过以上两步就可以完成CMD的编写。
具体的编写见DSP记录1,以上是一个大的总结
DSP的时钟和系统控制
有一个理解,时钟是晶振是30M,我们写的程序是相当于一个开关,通过倍频和分频告诉你,最后到DSP的SYSCLKOUT是150M或者是其他的。
GPIO也是有时钟的,GPIO一般为D触发器,需要时钟进行端口的改写。
这里有一个关注的重点,SYSCLKOUT(这个信号是系统给所有外设的时钟)
main函数
初始化时钟 InitSysCtrl();
一般时钟都在_SysCtrl.c文件中,首先关闭看门狗;初始化晶振;这个时候有150M
第一步,在里边配置高速和低速时钟;
第二步使能我需要的时钟。(没用的不打开)
这是2812的时钟寄存器
GPIO的多路复用
这一部分是需要初始化的,不同的外设对应不同的GPIO初始化。
第一步:选功能,是普通iO/外设1、外设2、外设3
GpioCtrlRegs.GPCMUX1.bit.GPIO68=0;//设置为通用GPIO功能
GpioCtrlRegs.GPCDIR.bit.GPIO68=1;//设置GPIO方向为输出
设置为普通io时,需要确定方向(输入还是输出),是否上拉,输出是置位还是清零还是翻转 设置为外设的时候,确定是否上拉,是否需要输入限定设置。
这样一部分推荐看课本GPIO的配置89页。