社区闲人 发表于 2024-3-26 08:56:19

Program Size: data=152.6 xdata=111 code=10571

data=152.6-----> 大于100的变量或数组要移到xdata.
一般data 的占用在80以下为宜。

manzunzu 发表于 2024-3-26 10:00:29

软件我不太懂,按道理讲同样的程序,类似的芯片,程序很小,8H2K17的ram还更大,8H2K17肯定没问题,结果是1K28正常,2K17反倒是不行了

yjawei 发表于 2024-3-26 11:13:30



楼主查一下,是不是因为2K17U里面的USB原因,因为USB里面有1280byte的FIFO是共用RAM的。

21cnsound 发表于 2024-3-26 11:30:52

yjawei 发表于 2024-3-26 11:13
楼主查一下,是不是因为2K17U里面的USB原因,因为USB里面有1280byte的FIFO是共用RAM的。 ...

是的,STC8H2K17的2K RAM中1K XDATA,1280Byte的USB数据RAM,是否可以声明为XDATA使用,有待官方答复。

乘风飞扬 发表于 2024-3-26 15:19:20

21cnsound 发表于 2024-3-26 11:30
是的,STC8H2K17的2K RAM中1K XDATA,1280Byte的USB数据RAM,是否可以声明为XDATA使用,有待官方答复。 ...

没有使能USB功能的话,1280Byte USB数据RAM可以作为普通XRAM使用,地址和前面的1K连续,定义变量时使用 xdata 关键字定义就可以。
使能USB后,这1280字节的RAM就为USB专用的FIFO,1280字节的RAM就都不能当普通的XRAM使用了。(1280字节的USB RAM是一个整体,不能一部分当作USB的FIFO,另外一部分当作XRAM)

乘风飞扬 发表于 2024-3-26 15:23:24

这两个芯片的EEPROM操作没什么区别,只要注意EEPROM操作地址不要超过烧录时设置的EEPROM地址上限即可。
可以直接烧录附件例程到芯片里试试,通过串口输出EEPROM内容。

21cnsound 发表于 2024-3-26 15:24:03

乘风飞扬 发表于 2024-3-26 15:19
没有使能USB功能的话,1280Byte USB数据RAM可以作为普通XRAM使用,地址和前面的1K连续,定义变量时使用 x ...

多谢回复,这个好像在数据手册中没有写。

manzunzu 发表于 2024-3-26 16:26:47

manzunzu 发表于 2024-3-26 16:27:23

manzunzu 发表于 2024-3-26 16:28:04

STC8h2k17测试结果
页: 1 [2] 3
查看完整版本: STC8H2K17和STC8H1K28的EEPROM不一样吗