找回密码
 立即注册
查看: 631|回复: 9

求助STC8H1K28调用malloc有问题

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2024-5-24 23:11:40 | 显示全部楼层 |阅读模式
程序如下
unsigned char *p

   Uart2Init();
    IE2 = 0x01;
    EA = 1;
    Uart2SendStr("Uart Test !\r\n");
                p=malloc(10);
                p[0]=0xaa;
                Uart2Send(p[0]);
    while (1)
    {
        if (rptr != wptr)
        {
            Uart2Send(buffer[rptr++]);
            rptr &= 0x0f;
        }
    }
上述函数 正常来说Uart2Send(p[0]);这里打印出来应该是十六进制的0xaa,但是实际发现是一个异常值05,有没有大佬帮忙解答下。

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:539
  • 最近打卡:2025-10-15 21:55:03

33

主题

2600

回帖

5729

积分

论坛元老

积分
5729
发表于 2024-5-25 09:05:48 | 显示全部楼层
我记得C51 不能直接使用malloc函数,需要定义一个数组,然后使用个什么函数(特定的)把这个数组初始化,当作堆来用。具体的可以百度 C51使用动态分配。。要不就等等大佬的回复。。反正是不能直接使用。。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:561
  • 最近打卡:2025-10-17 02:57:39
已绑定手机

17

主题

768

回帖

2326

积分

金牌会员

积分
2326
发表于 2024-5-25 13:50:29 | 显示全部楼层
没有用过这个函数,对于51单片机,最好不要用
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:189
  • 最近打卡:2025-10-15 09:11:20

21

主题

154

回帖

969

积分

高级会员

积分
969
发表于 2025-9-21 08:07:53 | 显示全部楼层
感觉C51的动态分配有问题,不知原因总是警告,能不能正常使用一回事,警告信息不能忽视的。
捕获1.JPG

点评

检查下是否改了A51文件或者工程选项 [attachimg]115757[/attachimg]  详情 回复 发表于 2025-9-21 12:03
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:329
  • 最近打卡:2025-10-16 08:46:33
已绑定手机

86

主题

3258

回帖

7207

积分

荣誉版主

无情的代码机器

积分
7207
发表于 2025-9-21 12:03:14 | 显示全部楼层
xhbw*** 发表于 2025-9-21 08:07
感觉C51的动态分配有问题,不知原因总是警告,能不能正常使用一回事,警告信息不能忽视的。
...


检查下是否改了A51文件或者工程选项
ai8051u-8bit.zip (106.75 KB, 下载次数: 2)
截图202509211202011591.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:57
  • 最近打卡:2025-10-08 22:47:21
已绑定手机

51

主题

363

回帖

1422

积分

金牌会员

积分
1422
发表于 2025-9-21 16:03:23 来自手机 | 显示全部楼层
对,要开mempool。
挺好用的其实,除了这个其他跟正常的一样用
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:189
  • 最近打卡:2025-10-15 09:11:20

21

主题

154

回帖

969

积分

高级会员

积分
969
发表于 2025-9-22 08:23:26 | 显示全部楼层
erci*** 发表于 2025-9-21 12:03
检查下是否改了A51文件或者工程选项

有没有做的工程DEMO我来测试一下,这个A51就是KEIL原装自带的,工程参数无论使用BL51还是LX51或者改变优化等级都是解决不了这个问题,也许运行没有问题的,但这样的警告信息要是真应用的工程上并且没有明确的原因还是令人心慌的。

点评

上面传了工程  详情 回复 发表于 2025-9-22 08:47
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:189
  • 最近打卡:2025-10-15 09:11:20

21

主题

154

回帖

969

积分

高级会员

积分
969
发表于 2025-9-22 08:26:02 | 显示全部楼层
_NC*** 发表于 2025-9-21 16:03
对,要开mempool。
挺好用的其实,除了这个其他跟正常的一样用

程序第一行就定义了unsigned char xdata rgbh[100],这不就是mempool声明吗?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:329
  • 最近打卡:2025-10-16 08:46:33
已绑定手机

86

主题

3258

回帖

7207

积分

荣誉版主

无情的代码机器

积分
7207
发表于 2025-9-22 08:47:04 | 显示全部楼层
xhbw*** 发表于 2025-9-22 08:23
有没有做的工程DEMO我来测试一下,这个A51就是KEIL原装自带的,工程参数无论使用BL51还是LX51或者改变优 ...

上面传了工程
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:189
  • 最近打卡:2025-10-15 09:11:20

21

主题

154

回帖

969

积分

高级会员

积分
969
发表于 2025-9-22 09:55:08 | 显示全部楼层

谢谢,设置的时候应该选择LX51链接,并且使用REMOVEUNUSED的链接覆盖控制项,折腾了好久,其实都是一些小的细节问题,不过没有你的工程文件还真不好查找。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-10-17 03:35 , Processed in 0.130519 second(s), 109 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表