Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
链接脚本_lds_sct_icf_分散加载
assert_断言
10
串口设备的rx_fifo为RT_NULL为空,怎么改呢?
发布于 2022-09-28 15:20:53 浏览:1076
订阅该版
分散加载文件如下 ```c LR_IROM1 0x08000000 0x00100000 { ; load region size_region ER_IROM1 0x08000000 0x00100000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00020000 { ; RW data .ANY (+RW +ZI) } RW_IRAM2 0x10000000 0x00010000 { main.o (+RW +ZI) screen_read.o (+RW +ZI) screen_write.o (+RW +ZI) ;startup_stm32f407xx.o (+RW +ZI) ;drv_usart.o (+RW +ZI) ;myiic.o (+RW +ZI) } } ``` 其中具体的是 ![screenshot_图片.png](https://oss-club.rt-thread.org/uploads/20220928/3cea0873657658f1a7d526de6d7f8b7d.png) 当前用了2个串口,一个buf是256,另一个是4096,只要开串口,就报这个断言错误 (rx_fifo != RT_NULL) assertion failed at function:rt_serial_open, line number:629 注释掉一个串口,另一个串口也会报错,我把这3个放在了那个64KB的位置,计算一下,加起来也没有65536个字节啊,为什么总报错呢? 堆栈空间截图 ![screenshot_图片.png](https://oss-club.rt-thread.org/uploads/20220928/5417bd0ea41ff51b84e1a5b38c8f47bb.png) 谢谢 ------------ 更新,发现缩小串口的buf,程序可以跑起来,这里4096改成10可以运行 ![screenshot_图片.png](https://oss-club.rt-thread.org/uploads/20220928/dc8fa217d7eacbf02aff93a217715730.png.webp) 但是我对比了正常和不正常的map文件,差别非常小,没有发现哪个特别大,我应该怎么调呢 ![screenshot_图片.png](https://oss-club.rt-thread.org/uploads/20220928/69c8b550cdea62cedf1ef545f91fdffc.png)
查看更多
3
个回答
默认排序
按发布时间排序
出出啊
2022-09-28
恃人不如自恃,人之为己者不如己之自为也
这个。。。断点进去调试一下看看啦。 既然是在 `rt_serial_open` 函数出现的断言,那么就在这个函数开头打个断点。然后在 `rt_device_open` 调用的地方打个断点。 先观察这俩函数的调用顺序,是否是 `rt_device_open` 调用 `rt_serial_open` 后出现断言的。 然后就是单步 `rt_serial_open` 函数看看代码执行流程和变量变化情况, `rx_info` 申请内存是否成功 等等等等...
伊森亨特
2022-09-28
这家伙很懒,什么也没写!
因为是rx fifo失败,申请空间的函数是 ```c rx_fifo = (struct rt_serial_rx_fifo*) rt_malloc (sizeof(struct rt_serial_rx_fifo) + serial->config.bufsz); RT_ASSERT(rx_fifo != RT_NULL); ``` 调用这个函数 ```c RT_WEAK void *rt_malloc(rt_size_t size) { rt_base_t level; void *ptr; /* Enter critical zone */ level = _heap_lock(); /* allocate memory block from system heap */ ptr = _MEM_MALLOC(size); /* Exit critical zone */ _heap_unlock(level); /* call 'rt_malloc' hook */ RT_OBJECT_HOOK_CALL(rt_malloc_hook, (ptr, size)); return ptr; } ``` 然后这个宏定义在这,相当于初始化之后,有一个systemheap ```c #define _MEM_INIT(_name, _start, _size) \ system_heap = rt_smem_init(_name, _start, _size) #define _MEM_MALLOC(_size) \ rt_smem_alloc(system_heap, _size) ``` ![screenshot_图片.png](https://oss-club.rt-thread.org/uploads/20220928/59de4ef8d8b3bd1ef45f2eaff8e2b1ed.png.webp) 这里调用了rt_system_heap_init函数 ![screenshot_图片.png](https://oss-club.rt-thread.org/uploads/20220928/0419654c770244d32812d7f2b37d5aca.png) 出现heapbegin heapend,找到board.h ```c #define STM32_SRAM_SIZE (128) #define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024) #if defined(__ARMCC_VERSION) extern int Image$$RW_IRAM1$$ZI$$Limit; #define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit) #elif __ICCARM__ #pragma section="CSTACK" #define HEAP_BEGIN (__segment_end("CSTACK")) #else extern int __bss_end; #define HEAP_BEGIN (&__bss_end) #endif #define HEAP_END STM32_SRAM_END ```
ching
2023-07-19
这家伙很懒,什么也没写!
没有初始化就先进串口中断引起的
撰写答案
登录
注册新账号
关注者
1
被浏览
1.1k
关于作者
伊森亨特
这家伙很懒,什么也没写!
提问
77
回答
31
被采纳
0
关注TA
发私信
相关问题
1
rt_object_init中报assertion failed错误?
2
串口中断读取信号量释放函数断言失败问题
3
请问在新建工程并且添加MAX30102的组件之后编译下载怎么为什么会报这种错呢
4
运行 tls_test 出现错误,这个是什么原因
5
使用ringbuffer时,自检到thread的type不匹配
6
webnet cgi 回调 出现assert
7
keil里面移植RT系统之后,上电直接assertation
8
使用max30102软件包时出现线程断言错误
9
进入到assert后,软看门狗仍在喂狗的问题
10
shall not be used in ISR
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
freemodbus主机在freertos的适配,参考rtthread例程
2
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
3
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
4
RT-Thread EtherKit开源以太网硬件正式发布
5
还在担心bsp不好维护吗?快使用yml管理主线bsp
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部