首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[推荐]浅析看了几天2407,给想我一样初学者的一点建议和东西

[推荐]浅析看了几天2407,给想我一样初学者的一点建议和东西

看了几天的2407,也做了点实验,给象我一样的初学者一点建议和东西。
 1、首先,请注意2407的架构,64K的程序,数据和I/O口独立寻址,关于程序就是内置32K和外扩32K,关于数据就是也同样是内置32K和外扩32K,但数据区有一点区别:内置的32K有很多不连续的非法区,就是说真正可以访问的只有3K不到,并且是非连续分布的,那I/O口呢?!只是对自己本身芯片已有的I/O口进行了控制罢了,比如A,B,C,D,E,F口而已,如果你要外扩也可,如果外扩的话,如果和芯片本身的I/O口地址重叠的话(如A口,B口等等),那到底是对内先还是对外先(这个我没有做过实验,但一般理解是对内优先了,如果你知道,望告之,谢谢!!)
 2、其次,是关于CMD文件,结构我就不说了,自己看了,找个例子就知道了,TI是对段编程的,也就是说,第-部分说明了你可以使用的环境资源,比如程序区在哪儿,数据区在哪儿等等,如果你编写了并不存在的可以使用的资源,那当你下载或编程(请注意下载RAM和编程FLASH在我表达中的意思)的时候肯定会出错,还有常见的错误是用编程的地址却在下载,那当然是不可行的了,数据是写不进去的了,只有编程才行(需要提醒的是,在下载和编程时地址时唯一的,和你后来到0000H中来运行还是8000H开始运行,那是你后来程序与系统在下载和编程完之后才去做重定位或影射的事,因为没有你先前的下载或编程,就根本没有或谈不上后来的重定位或映射。
 3、再次,是关于程序在RAM中运行的问题。如果你没有注意硬件的信号,PS,DS,IS的话,那请你注意了。。。在外扩的RAM中,往往将PS和DS都做为RAM的选通信号,这样就是说对外扩的FLASH和外扩数据区的操作其实都是对同个RAM的操作,还有可以通过对管脚MC的操控来选择内部FLASH还是外部RAM做为程序“FLASH”,其实说这么多是为了让我们大家明白其中的机理,也就是说实际8000H的程序区和8000H的数据区是重叠了,这样就可以下载了。你只要在0000H的FLASH中先写入中断向量表,我的是对应跳转到8000H开始的单元中,这样不论你的MC是0还是1,应该都没关系了,因为当你是0时,从FLASH中跳到8000H中,再跳进入程序,如是1时,则从8000H直接跳进入程序(再说明一下,从FLASH角度8000H就是0000H,MC=1。从数据区的角度8000H仍是8000H。虽然是同个RAM,PSH和DS都是片选指向同个RAM。),就说这么多了,看了这些,和我一样应该可以比较顺利点入门了。
  毕竟我是初学者,以前搞过点单片机虽然才4、5年。以上如有理解错误,请谅解!! 也请大虾们指正。。。 先谢过了。。
返回列表