Tuier 发表于 2024-1-31 13:32:25

一箭双雕CDC程序问题

本帖最后由 Tuier 于 2024-1-31 13:33 编辑

近期用一箭双雕做试验,先建立简单过程,测试一下CDC不停电下载功能,结果出现L107错误:地址空间溢出。编译后看到data=201.4,xdata=192,KEIL设置内存模式memory model为small,大小为large,应该没有问题才对。内存模式只能用large模式,但编译有很多警告。翻出我原来建立的模板同样的程序编译就正常,keil设置完全一样,data只占有53.0了。为何会这样,不得已求助论坛里的各位老师解惑!先谢谢了!

21cnsound 发表于 2024-1-31 14:44:06

用stc_usb_cdc_8h_data.lib,这个库定义的data和你自己代码中的data总共201.4Byte,超过了芯片data区的范围。
两种方式,改用stc_usb_cdc_8h_xdata.lib,或者减少你自己代码中data的使用量。

Tuier 发表于 2024-1-31 14:59:10

21cnsound 发表于 2024-1-31 14:44
用stc_usb_cdc_8h_data.lib,这个库定义的data和你自己代码中的data总共201.4Byte,超过了芯片data区的范围 ...

源程序没有什么内容,就是一个点灯。用stc_usb_cdc_8h_xdata.lib能够通过编译,但警告很多。原来同样的程序用data库没有问题的。

Tuier 发表于 2024-1-31 15:02:41

我认为很简单一个试验程序,为何会这样?同样的硬件设备、同样的keil设置、同样的程序.

机灵小老鼠 发表于 2024-7-14 12:52:31

会不会是 REMOVEUNUSED 这个链接控制 导致的? 原来的工程设置中有这个设置,现在的工程设置中你忘了设置
页: [1]
查看完整版本: 一箭双雕CDC程序问题