hansen 发表于 2023-4-28 20:10:05

STC32G软件可以在RAM中运行么?

如题,STC32G是251内核,软件可以跳到RAM中运行么?

神农鼎 发表于 2023-4-28 20:43:25

实现起来很简单,在程序区放块SRAM就可以了,增加些成本而已




晓奇 发表于 2023-4-29 16:53:15

本帖最后由 晓奇 于 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)

神农鼎 发表于 2023-4-29 17:20:08

感谢 晓奇兄 经常来论坛分享心得,帮大家快速前进 !
下图的文字说明也是我感觉必须加红强调的,目前实际留给大家在PCB板上,实际的外扩并行总线地址只有这 64K 空间




页: [1]
查看完整版本: STC32G软件可以在RAM中运行么?