137****com
我司已用GR5515IGND芯片、基于SDK_1.7.0版本、基于工程...GR551x_SDK_V1.7.0\projects\ble\ble_peripheral\ble_app_uart 开发的。
基本保持了ble_app_uart 的原有BLE交互逻辑、参数配置,只是增加了数据接收后的处理业务。
第一代产品屏幕分辨率较低,一帧画面需要10KByte左右就可以。
现在迭代升级,屏幕尺寸更大,一帧画面的数据量达到192000Byte。
尝试不改变原有工程的架构、业务逻辑的情况下,直接放大接收缓冲区,期望在缓冲区中一次性把一帧画面收完,定义的位置如下:
...GR551x_SDK_V1.7.0\projects\ble\ble_peripheral\ble_app_uart\Src\user\transport_scheduler.c
#define RING_BUFFER_SIZE_BLE 192000
#define RING_BUFFER_SIZE_UART 512
#define UART_ONCE_SEND_SIZE 244
#define BLE_MtU_MAX 512
/*
* LOCAL VARIABLE DEFINITIONS
*****************************************************************************************
*/
static uint16_t s_mtu_size = 23;
static bool s_transport_flag[FLAGS_NB];
static uint8_t s_uart_to_ble_buff[RING_BUFFER_SIZE_UART]; // 串口 -> BLE 全量待发缓冲
static uint8_t s_ble_to_uart_buff[RING_BUFFER_SIZE_BLE]; // BLE -> 串口 全量待发缓冲
static uint8_t s_uart_tx_data[UART_ONCE_SEND_SIZE]; // 串口 单次 待发缓冲
static uint8_t s_ble_tx_data[BLE_MtU_MAX]; // BLE 单次 待发缓冲
static ring_buffer_t s_uart_rx_ring_buffer;
static ring_buffer_t s_ble_rx_ring_buffer;
直接把RING_BUFFER_SIZE_BLE 设置为192000,编译报错如下:
曾经尝试,把RING_BUFFER_SIZE_BLE设置为150*1024,如下:
#define RING_BUFFER_SIZE_BLE 150*1024
编译可通过,并且.map文件的程序大小统计如下:
==============================================================================
Code (inc. data) RO Data RW Data ZI Data Debug
88372 10634 7576 1988 200336 775847 Grand Totals
88372 10634 7576 1012 200336 775847 ELF Image Totals (compressed)
88372 10634 7576 1012 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 95948 ( 93.70kB)
Total RW Size (RW Data + ZI Data) 202324 ( 197.58kB)
Total ROM Size (Code + RO Data + RW Data) 96960 ( 94.69kB)
==============================================================================
由此可见,RAM空间只用了197.58KB。
请教帮忙解答:
1、当设置#define RING_BUFFER_SIZE_BLE 150*1024 时RAM空间只用了197.58KB。,是否可以理解仍有 256KB-197.58KB = 58.42KB空间可以支配?
2、该程序中的RING_BUFFER_SIZE_BLE 总共需要 188 *1024 的大小,那么此时还需要38KB,从剩余的58.42KB,如何把它利用起来?具体设置哪些参数?
zhongchengzhi
您好:
1、Map文件的202324 ( 197.58kB)并不包含系统预留,ROM使用和RAM code size等,当链接报错时,此时系统无更多可用的SRAM。
2、您可以根据需求,调整custom_config.h里面的配置来优化SRAM使用,custom_config的配置参考: https://developers.goodix.com/zh/bbs/detail/62629017497443a8a23007970c1d3769?answerId=0ffad09987484459ae6ccf94e5a30437
打开微信,使用“扫一扫”即可关注