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

外贸型网站建设网络营销的职能有哪些

外贸型网站建设,网络营销的职能有哪些,云顶科技做网站的,需要外包团队做网站怎么提需求这是一个经典问题,在嵌入式开发中尤为重要。主要原因可以归结为以下几点: ✅ 1. 链接方式不同 build.sh 使用的是: arm-none-eabi-gcc -c ... arm-none-eabi-ld ... -T blue_pill.ld而 CMake 默认使用的是: arm-none-eabi-gcc …

这是一个经典问题,在嵌入式开发中尤为重要。主要原因可以归结为以下几点:


1. 链接方式不同

build.sh 使用的是:

arm-none-eabi-gcc -c ...
arm-none-eabi-ld ... -T blue_pill.ld

CMake 默认使用的是:

arm-none-eabi-gcc ... -T blue_pill.ld

虽然都能生成 .elfgcc 调用 ld 时自动添加了一堆默认库和启动文件,如:

  • crt0.o
  • libc.a
  • libgcc.a
  • _start 入口
  • __libc_init_array() 调用

这会导致:

  • 生成文件大小变大
  • 运行逻辑不同(比如多了 libc 初始化)

2. 启动文件和链接脚本行为不同

你的 build.sh 明确用 -Ttext=$FLASH_BASE 和自定义 .ld,手动控制内存布局、入口地址。

而 CMake 如果没有强制指定

add_link_options(-Ttext=0x08000000 -T your_linker.ld)

或者:

add_link_options(-nostartfiles -nostdlib)

它很可能链接的是:

  • 错误的启动地址(默认 _start
  • 自动插入的 crt0.o
  • 新lib初始化代码
  • 更改了 stack, heap 默认符号(比如 _stack_end

3. 编译选项不同

你的 build.sh 用的是:

-O2 -fno-hosted -fno-inline -fno-align-functions -ffunction-sections -fdata-sections

但在 CMake 里你用了:

add_compile_options(-Og -g) # Debug

即便链接脚本一样,优化等级不同也会极大影响 .elf.bin 的大小,甚至行为(比如函数没被内联或链接器无法优化函数段合并)。


4. 汇编预处理路径不同

你用了 .s 文件且其中有 #include 其他 .s,这要求你确保:

add_compile_options(-Wa,-I${CMAKE_SOURCE_DIR}/src)

缺失这个会导致 descriptors_audio.s 没被编进 .elf,最终 .bin 更小,功能缺失。


5. 是否 strip/debug 信息

你的 build.sh 调用了 --strip-debug(虽然用错位置了,但有可能有效),而 CMake 没有。

.elf 大小区别 ≠ .bin 实际写入闪存的区别

strip 会影响 .elf 体积(调试符号被去除),在一些上传/烧录工具中甚至影响校验行为。


6. 默认链接库行为

如果你没有加 -nostdlib,GCC 会默认链接这些:

libc.a
libm.a
libgcc.a

它们会加入如下代码:

  • 浮点支持(可能不需要)
  • 除法函数(比如 __aeabi_uidiv
  • _exit() 等(如果你没实现可能链接失败)

🧪 ✅ 如何验证差异:

  1. 对比 .elf 的节区:
arm-none-eabi-size -A your.elf

你会看到:

  • .text, .data, .bss, .init, .fini 等差异
  • 看是否有 libgcc, crt0.o 的残留代码段
  1. nm 工具查看符号:
arm-none-eabi-nm -n your.elf | less

特别检查:

  • 是否有 _start, __libc_init_array, __aeabi_*, __libc_fini_array
  1. readelf -aobjdump 看指令节/布局。

🛠 推荐你在 CMake 中添加以下保证一致性:

# 防止插入 crt0.o / libc / libgcc
add_link_options(-nostdlib -nostartfiles)# 禁止 C++ RTTI 和异常支持(如有)
add_compile_options(-fno-exceptions -fno-rtti)# 加入链接脚本 + 明确入口地址
add_link_options(-T ${LINKER_SCRIPT} -Ttext=0x08000000)# 汇编 include 支持
add_compile_options(-Wa,-I${CMAKE_SOURCE_DIR}/src)

✅ 总结一句话:

build.sh 是你完全掌控编译流程,CMake 如果不特别配置,会加进很多 GCC 默认行为 —— 包括启动代码、链接库、调试符号、浮点支持等。这就导致生成文件大小、内容、行为都可能不同
Cmake 需要加 add_link_options(-nostartfiles -nostdlib)


http://www.dtcms.com/wzjs/210636.html

相关文章:

  • 贵州高端建设网站免费的网站平台
  • 邵阳多用户商城网站建设淘宝直通车
  • 长春疫情最新消息今天封区了seo牛人
  • 做网站程序员风云榜百度
  • 前端后端都是网站开发吧网站seo优化方法
  • 重庆微网站制作公司怎么在网上推广
  • 南通给公司做网站的神马网站快速排名案例
  • 网站建设领先韩国比分预测
  • 整站优化服务搜索引擎推广试题
  • 建站系统破解全球搜索引擎网站
  • 常州网站建设公司市场百度关键词排名批量查询工具
  • 企业网站建设方案 wordseo外包方法
  • wordpress怎么加sitemapseo还能赚钱吗
  • 网站建设 宁夏51链
  • 西安网站架设公司郑州企业网络推广外包
  • 一学一做专题网站阿里指数在哪里看
  • 智慧党建门户网站建设方案seo搜索引擎优化的内容
  • 生态文明建设网站专题培训网站检测中心
  • 宁波北京网站建设品牌推广方案
  • 企业管理软件a6seo快速排名软件品牌
  • 2018年靖边建设项目招投标网站广西seo经理
  • wordpress 安装 主题seo怎么做新手入门
  • 室内设计方案讲解思路网店搜索引擎优化的方法
  • 做网站的必备软件百度一下了你就知道官网
  • 武汉建设信息网站官网昆山seo网站优化软件
  • 大兴区建设委员会网站网络舆情处置的五个步骤
  • 宜昌做网站公司有哪些方法广告联盟推广
  • 做网站显示不同字体中国大数据平台官网
  • 小说网站快速做排名如何自己编写网站
  • 网站建设用什么软件如何做好口碑营销