当前位置: 首页 > news >正文

南沙网站建设公司哪家好所有浏览器大全

南沙网站建设公司哪家好,所有浏览器大全,温州最便宜网站建设,seo学徒在许多嵌入式应用程序中#xff0c;内存分配必须是静态的#xff0c;而不是动态的。意味着在应用程序中不应使用对malloc()或free()等内容的调用#xff0c;因为它们可能会在运行时失败#xff08;内存不足、堆碎片#xff09;。 但是#xff0c;当与第三方库甚至 C/C 标…  在许多嵌入式应用程序中内存分配必须是静态的而不是动态的。意味着在应用程序中不应使用对malloc()或free()等内容的调用因为它们可能会在运行时失败内存不足、堆碎片。 但是当与第三方库甚至 C/C 标准库链接时如何确保不使用动态内存对于C对象或对 printf()的简单调用也可能会出现此问题该调用需要在内部分配一些动态内存。 1、零堆大小 一种简单而且相当幼稚的方法是将堆大小设置为零。大多数链接器脚本或链接器环境都能够将堆大小设置为零如下所示 但是这无济于事因为大多数链接器脚本只使用堆栈空间和变量 bss 之间的可用空间 因此将堆大小设置为零只是假设保留为零但库的 _sbrk()将继续使用动态内存可能会崩溃到堆栈空间。 底线大多数链接器脚本堆大小设置为零将无济于事。它甚至增加了堆崩溃到堆栈中的可能性因为链接器假定堆的使用量为零。但它不会阻止使用堆。 2、堆在链接器文件中 这可以从下面显示的链接器文件中看出 若要确保不使用堆最简单的方法是简单地删除上述链接器文件中的 .heap 分配。检查链接器文件中是否有“堆”或类似内容并确保没有为其分配内存。特别是确保没有使用符号“__prvHeapStart”或“__prvHeapLimit”因为它们通常是newlib/newlib-nano库动态内存分配所必需的。 3、链接器自由标记脚本 恩智浦MCUXpresso IDE等某些环境正在使用自动生成的链接器文件。但是如果您了解它使用的FreeMarker脚本则很容易处理此问题。脚本位于 MCUXpresso IDE Installation Path\ide\Wizards\linker所以我可以使用修改后的 FreeMarker 脚本轻松禁用 .heap 4、__sbrk 删除堆及其符号后malloc()的任何用法都应该给出一个链接器错误类似于这个错误 Invoking: MCU Linker arm-none-eabi-gcc -nostdlib -Xlinker -MapAEMBS_tinyK22_HS22.map -Xlinker --gc-sections -Xlinker -print-memory-usage -Xlinker --sort-sectionalignment -Xlinker --cref -mcpucortex-m4 -mfpufpv4-sp-d16 -mfloat-abihard -mthumb -T AEMBS_tinyK22_HS22_Debug.ld -o AEMBS_tinyK22_HS22.axf ./utilities/fsl_assert.o ... ./McuLib/FreeRTOS/FreeRTOShooks.o arm-none-eabi/bin/ld.exe: arm-none-eabi/lib/thumb/v7e-mfp/hard\libcr_newlib_semihost.a(_cr_sbrk.o): in function _sbrk: _cr_sbrk.c:(.text._sbrk0x38): undefined reference to _pvHeapStart5、链接器交叉引用 如果不清楚使用内存分配或导致错误的原因可以使用链接器交叉引用。为此必须将 GNU 链接器 –cref 选项添加到链接器选项中 这会在链接器 .map 文件中生成如下所示的信息 Cross Reference TableSymbol File ADC0_DriverIRQHandler ./startup/startup_mk22f51212.o ADC0_IRQHandler ./startup/startup_mk22f51212.o ADC16_ClearStatusFlags ./drivers/fsl_adc16.o ADC16_Deinit ./drivers/fsl_adc16.o ... main ./source/main.o./startup/startup_mk22f51212.o malloc arm-none-eabi/lib/thumb/v7e-mfp/hard\libc_nano.a(lib_a-malloc.o)arm-none-eabi/lib/thumb/v7e-mfp/hard\libc_nano.a(lib_a-rand.o)./drivers/fsl_common.o mcgConfig_BOARD_BootClockRUN ./board/clock_config.o这给出了使用 malloc()之类的模块列表。 6、图像信息 找出依赖关系的另一种方法是在 Eclipse/MCUXpresso 中使用“图像信息”视图请参阅在构建后操作中列出具有 GNU 大小实用程序的所有文件的代码和数据大小 7、免费实时操作系统静态内存分配 更多旁注默认情况下FreeRTOS 使用自己的动态堆分配。但是可以静态方式运行 RTOS无动态内存分配请参阅带静态内存分配的 FreeRTOS V9.0.0。 8、总结 许多应用程序不需要动态内存分配和使用。为了防止使用 malloc()和 free最好删除链接器文件中的任何堆定义以导致链接器错误。那么 GNU 链接器交叉引用表或图像信息可能非常有用。 9、链接 使用 FreeMarker 脚本的示例教程将 BLENRF Kinetis Design Studio Project 移植到 MCUXpresso IDE带有 FreeMarker 脚本的引导加载程序将引导加载程序应用程序与 Eclipse 和 FreeMarker 脚本链接起来自由标记脚本https://freemarker.apache.org/ 欢迎关注
http://wiki.neutronadmin.com/news/15911/

相关文章:

  • 非交互式网站建网站有哪些文件夹
  • 北京沙河教做网站的黔西网站建设
  • 大连做公司网站哪家好做旅游宣传不错的网站
  • 贵阳做网站的服装设计素材网站
  • 松原手机网站开发公司电话专业的广州手机网站
  • 长沙建站找有为太极环境遵网站被做暗链报告
  • 关于建设集团公司网站的报告青岛网站建设培训
  • 公众号怎么做网站多种语言的网站
  • 上海电商网站设计河源网站搭建费用
  • 校园网站规划与建设心得高校建设思政教育网站案例
  • 如何做网站小编seo刷排名工具
  • 全能网站建设教程杭州建设网站 网站建设
  • 南昌网站网页设计中铁建设集团招标网站
  • 回力网站建设初衷微信小程序卖货平台
  • 商城网站建设价位seo运营招聘
  • 一对一直播网站开发微信网站建设平台
  • 中文域名网站建设做网站广告有哪些职位
  • 凡科网站产品导航怎么做莆田外贸网站建设
  • 衡阳微信网站开发上传网站步骤
  • 网站建设运营知乎现在的网站用什么程序做
  • 滨州做网站公司自己做的网站怎么链接火车头采集
  • 哪家建网站wordpress作者页制作
  • 网站营销推广公司免费模板网站都有什么用
  • 2手房产App网站开发app小程序网站开发
  • 大邑做网站永康好口碑关键词优化
  • 网站规划小结涿州做网站
  • 微网站是什么意思云南信息港
  • 企业网站带后台营销推广有哪些步骤
  • 可信赖的广州做网站网店推广工作内容
  • ps切片以后 怎么做网站电子商务的网站建设过程