学习2812是最近的事情,因为有了硬件开发平台,边看书边学习边实验可以理解的更深。以前是用2407开发的,而且是用的汇编语言,刚开始时觉得好累,不是一般的累,每一句汇编都要找到相关的解释才能看懂;还有寻址方式,不像C语言里那样可以用指针什么的,在汇编里一定要清楚每条指令所能用的寻址方式,不然程序肯定跑飞。
现在学习2812,因为直接上C语言了,所以对2812的硬件内核和外设设置没有一个总体上的了解,有些程序编起来还是会无从下手,大部分程序可以完成,但程序的实际执行顺序并不是很清楚,所以我觉得基本的汇编语言还是应该学习一下的,那样会使自己的程序水平上一个台阶。
2812的头文件定义为编程提供了很大的方便,模块化更加强,具体设置就参考相关的寄存器设置就行。
在此,我总结下学习2407的经验,2812只是初步谈不上经验,有什么不对的地方希望能够提出

1)把存储器映射结构搞清楚
说的具体点就是dsp内到底有那些存储器(ram,rom,flash,etc),这些存储器到底是如何分配的,这个可以参考相关的.cmd文件的写法,它定义了存储器映射和输入输出段的位置
2)编译器的堆栈操作
有关这点我还是没有具体弄清楚,就是中断或是子程序调用时,系统自己的堆栈操作。2407有一个8级硬件堆栈,而2812没有,这个区别比较大,所以在编一边针对堆栈操作的程序(eg. rtos)时就要特别注意了。
3)中断系统
每个mcu的中断系统搞清楚了,会给编程带来很大的便利,所以一定要对所用的mcu的中断过程了解的清清楚楚。
4)数据结构
设计好的,适合的数据结构会使自己的程序编写变得结构清楚而且“容易”。
好了,就先说这么多吧。现在学习2812,有很多地方不同,大家一起讨论,多多交流,肯定能够更深的理解这块2812.
