1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-21 15:48 编辑
我在AM3352上使用SYS/BIOS 6.35.1.29,在程序中使用了非常大的数组(32MB),造成系统启动非常慢 原因估计是SYS/BIOS在启动的时候把这个数组都给清0了。 有什么办法能让SYS/BIOS不初始化这个数组以提高启动速度 |
|
相关推荐
9个回答
|
|
请问这个数组是怎么分配的?是开在静态数据区还是用malloc()函数开在堆区了?
|
|
|
|
静态分配的 uint8_t fontBuffer[FON_SIZE] __attribute__((aligned(4))); |
|
|
|
建议在运行时用malloc分配内存,如果开在静态数据区肯定需要很长时间初始化的 |
|
|
|
SYS/BIOS中的heap不初始化么? 有没有办法改linker.cmd把BSS不初始化? |
|
|
|
我认为这么大的数组还是开在堆区合适。 |
|
|
|
|
|
|
|
jvwueurw 发表于 2018-6-21 05:52 sy***ios使用的heap也会被初始化啊,需要非常长的时间。我的heap有96MB,初始化要将近10s时间,不可接受。 有什么办法能不初始化这些东西呢? 附:map .bss 0 80001000 065bd420 UNINITIALIZED 80001000 06000000 app_pea8fnv.oea8fnv (.bss:ti_sy***ios_heaps_HeapMem_Instance_State_0_buf__A) 86001000 00202000 apisUSBD_Drv.obj (.bss:u***0RxBuffer) 86203000 00200000 apis_lcd.obj (.bss:bmp) 86403000 0007f880 apis_lcd.obj (.bss:apisLcdFrame) 86482880 0007f880 apis_lcd.obj (.bss:apisLcdFramePop) 86502100 0007f804 apis_lcd.obj (.bss:apisLcdFramePopBg) 86581904 00020000 apis_lcd.obj (.bss:g_bmpAT) |
|
|
|
cmh29 发表于 2018-6-21 06:09 malloc()函数是不会执行初始化的,初始化一般实在malloc之后调用memset |
|
|
|
不是我的程序初始化的,是系统自动初始化的。 解决方案已找到:在Linker里有加个选项--zero_init=off就好了 |
|
|
|
只有小组成员才能发言,加入小组>>
336 浏览 1 评论
529 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
774 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
651 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1130 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
57浏览 29评论
139浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
252浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
201浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
57浏览 13评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 07:53 , Processed in 1.051802 second(s), Total 63, Slave 57 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号