打印
[PIC®/AVR®/dsPIC®产品]

MAPLBA X X8的环境下,stdlib文件为啥要删减??

[复制链接]
422|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本想MAPLBA X环境下,使用malloc和free ,添加头文件stdlib.h,显示报错,打开头文件,一看,竟然没有。
为啥要删减呢,难道认为这个8位的太弱,没资格用??
我打开X8的路径,查看发现C90的stdlib里面还有,C99里面的stdlib就没了。
但实际根本就不是C99的锅,人本身就是有的。查看X32里面也有。
C99与C89的对比

再看看MDK C51里面的头文件:

里面也有。
那么X8编译环境下的是被移到其他头文件了,还是其他啥的,请大佬指点~


使用特权

评论回复
沙发
lcczg| | 2021-2-23 17:02 | 只看该作者
你可以在MPLAB X使用C90的库 https://microchipdeveloper.com/xc8:moving-to-xc8-2-0

使用特权

评论回复
板凳
永远不停| | 2021-2-26 09:30 | 只看该作者
lcczg 发表于 2021-2-23 17:02
你可以在MPLAB X使用C90的库 https://microchipdeveloper.com/xc8:moving-to-xc8-2-0

你好,我也遇到一样的问题,修改为使用C90的库后,没有报错,但仍然编译失败,是不是动态内存分配失败导致无法编译成功,
使用的芯片是PIC16F15345,Data SRAM为1KB,请问该如何解决该问题?

使用特权

评论回复
地板
lcczg| | 2021-3-3 15:10 | 只看该作者
永远不停 发表于 2021-2-26 09:30
你好,我也遇到一样的问题,修改为使用C90的库后,没有报错,但仍然编译失败,是不是动态内存分配失败导 ...

我觉得库文件里是extern的,本身的定义还是没有。

使用特权

评论回复
5
qjp1988113|  楼主 | 2021-3-3 16:19 | 只看该作者
lcczg 发表于 2021-3-3 15:10
我觉得库文件里是extern的,本身的定义还是没有。

是的,真是感觉没事找事做,MICROCHIP的软件工程师到底是基于什么目的,到底再想什么~

使用特权

评论回复
6
lcczg| | 2021-3-4 16:54 | 只看该作者
qjp1988113 发表于 2021-3-3 16:19
是的,真是感觉没事找事做,MICROCHIP的软件工程师到底是基于什么目的,到底再想什么~ ...

很抱歉造成的不便。刚看了下XC8的编译器手册(https://ww1.microchip.com/downlo ... 0UG%20for%20PIC.pdf),看到里面提到不支持。
5.4.7 Dynamic Memory AllocationDynamic memory allocation, (heap-based allocation using malloc(), etc.) is not supported on any 8-bit device. Thisis due to the limited amount of data memory available, the memory banks which divide the memory and the wastefulnature of dynamic memory allocation.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

111

主题

627

帖子

2

粉丝