[PIC®/AVR®/dsPIC®产品] MAPLBA X X8的环境下,stdlib文件为啥要删减??

[复制链接]
884|5
 楼主| qjp1988113 发表于 2021-2-22 13:35 | 显示全部楼层 |阅读模式
本想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 | 显示全部楼层
永远不停 发表于 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的,本身的定义还是没有。
 楼主| qjp1988113 发表于 2021-3-3 16:19 | 显示全部楼层
lcczg 发表于 2021-3-3 15:10
我觉得库文件里是extern的,本身的定义还是没有。

是的,真是感觉没事找事做,MICROCHIP的软件工程师到底是基于什么目的,到底再想什么~
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

粉丝
快速回复 在线客服 返回列表 返回顶部