STC32G软件可以在RAM中运行么?
如题,STC32G是251内核,软件可以跳到RAM中运行么? 实现起来很简单,在程序区放块SRAM就可以了,增加些成本而已本帖最后由 晓奇 于 2023-4-30 00:21 编辑
感谢神龙鼎老友啊!困扰已久的问题:外连普通点阵液晶模块240128(T6963c),用总线方式连接始终无法驱动。原来问题出在外扩xdata的地址上,看了你给出这张图才明白,外扩使用总线方式的地址不能简单使用2字节地址了,修改了地址定义一下子就驱动成功了,非常感谢!
以前经过无数次的实验,使用其他芯片如15F的很顺利的程序,换到32G以后毫无反应,总以为是速度问题或者时序问题,不得已在用32G的时候改用模拟总线驱动加插_nop_();实在感觉憋屈,放着这么好的芯片却不能使用总线,窝了太久的这口气今天终于顺畅了。
以前普通51对液晶模块的端口地址定义:(P2.7--CS, P2.6--CD)
#define LCMDW XBYTE // 数据口读写
#define LCMCW XBYTE // 命令状态口读写
现在改用32G芯片对液晶模块的端口地址定义改为:
#define LCMDW (*(unsigned char volatile far *)0x7F3fff) // 数据口读写
#define LCMCW (*(unsigned char volatile far *)0x7F7fff) // 命令状态口读写
keil设置 Memory Model:Large xdata....
程序需设置:
EXTRAM = 1;
BUS_SPEED = 3; // wr/rd回归P4.2/4.4,状态保持时间1(11.0592)/2(22.1184M)/6(35M)
感谢 晓奇兄 经常来论坛分享心得,帮大家快速前进 !
下图的文字说明也是我感觉必须加红强调的,目前实际留给大家在PCB板上,实际的外扩并行总线地址只有这 64K 空间
页:
[1]