0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Zephyr如何在第三方工具链下开启TLS

ZephyrProject 来源:HalfCoder 作者: lgl88911 2021-07-05 08:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在Zephyr TLS线程本地存储的实现一文中说明了如何在Zephyr上使用TLS,在这种默认的情况下Zephyr的编译是使用的是Zephyr SDK提供的工具链。

而在一些特殊情况下我们希望使用重新配置编译第三方工具链来编译Zephyr,这就需要配置让第三方工具链支持TLS,并修改Zephyr的Kconifg加入第三方工具链支持TLS.

工具链编译

到https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads下载要用的source code,例如我选择的是gcc-arm-none-eabi-9-2020-q2-update-src.tar.bz2

解压缩后有一个How-to-build-toolchain.pdf文档说明如何编译

安装依赖

我的环境是ubuntu 18.04,安装依赖

1

2

sudo su

apt-get install software-properties-common

add-apt-repository universe

cat 》/etc/apt/sources.list.d/xenial.list 《《EOF

deb http://archive.ubuntu.com/ubuntu xenial main universe

deb-src http://archive.ubuntu.com/ubuntu xenial main universe

deb http://security.ubuntu.com/ubuntu xenial-security main

EOF

dpkg --add-architecture i386

apt-get update

apt-get install -y -t xenial

gcc-mingw-w64-i686 g++-mingw-w64-i686 binutils-mingw-w64-i686

apt-get -f install -y

build-essential

autoconf

autogen

bison

dejagnu

flex

flip

gawk

git

gperf

gzip

nsis

openssh-client

p7zip-full

perl

python-dev

libisl-dev

scons

tcl

texinfo

tofrodos

wget

zip

texlive

texlive-extra-utils

libncurses5-dev

exit

修改编译配置项

不需要mingw32,配置为跳过加速编译

1

2

skip_mingw32=yes

skip_mingw32_gdb_with_python=yes

将--disable-tls修改为--enable-tls

gcc-arm-none-eabi默认是关闭tls的,gcc编译代码后访问TLS时使用的是emulated tls,和Zephyr的实现不一致,需要改为--enable-tls

编译

执行下面命令进行编译

1

2

3

。/install-sources.sh

。/build-prerequisites.sh

。/build-toolchain.sh

编译完成后的结果会被打包放在pkg/下, 例如我这里生成的就是gcc-arm-none-eabi-9-2021-q2-x86_64-linux.tar.bz2

在编译gdb的时候可能会提示python有问题,原因是我的默认版本是python3, 需要进行python版本切换gcc-arm-none-eabi-9-2020-q2使用python 2.7, 切换方法见Python2和3切换

第三方工具链配置TLS

使用第三方工具链

将gcc-arm-none-eabi-9-2021-q2-update-x86_64-linux.tar.bz2解压缩,根据解压缩的路径修改~/.zephyrrc如下,Zephyr就会使用第三方工具链进行编译

1

2

export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb

export GNUARMEMB_TOOLCHAIN_PATH=/mnt/d/code/gcc-arm-none-eabi-9-2021-q2-update

修改Zephyr配置

当使用第三方工具链后即使配置了CONFIG_THREAD_LOCAL_STORAGE=y在编译的时候也会提示由于TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE为n而无法TLS, 但由于TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE是Zephyr的隐藏配置项因此无法在prj.conf中配置。

修改方式是在zephyr/kernel/Kconfig中为gnuarmemb添加默认支持TLS

1

2

3

config TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE

bool

default y if (“$(ZEPHYR_TOOLCHAIN_VARIANT)” = “zephyr” || “$(ZEPHYR_TOOLCHAIN_VARIANT)” = “gnuarmemb”)

通过以上修改,用第三方工具链gnuarmemb编译就可以支持Zephyr的TLS。

参考

https://docs.zephyrproject.org/latest/getting_started/toolchain_3rd_party_x_compilers.html

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74388
  • 编译
    +关注

    关注

    0

    文章

    696

    浏览量

    35284
  • python
    +关注

    关注

    58

    文章

    4885

    浏览量

    90314

原文标题:Zephyr在第三方工具链下开启TLS

文章出处:【微信号:ZephyrProject,微信公众号:ZephyrProject】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    倾斜仪是否支持接入第三方自动化采集系统?

    倾斜仪作为工程监测的重要设备,其系统集成能力直接影响实际使用效果。针对是否支持第三方自动化采集系统的问题,答案是肯定的。YS系列倾斜仪在设计阶段即考虑了系统的开放性和兼容性,能够与市面上主流的自动化
    的头像 发表于 03-25 17:25 399次阅读
    倾斜仪是否支持接入<b class='flag-5'>第三方</b>自动化采集系统?

    为什么MES企业要跟第三方机构合作设备数据采集?

    综上考虑,多数MES企业都不直接承接设备数据采集业务,而是选择和第三方机构合作。毕竟第三方机构长期耕耘这一领域,拥有成熟的产品体系、完善的技术路线以及专业的现场施工团队,能够快速应对各类现场难题,将
    的头像 发表于 03-19 15:03 870次阅读
    为什么MES企业要跟<b class='flag-5'>第三方</b>机构合作设备数据采集?

    苹果17可以无线充电吗?第三方配件怎么选?

    iPhone 17无线充电提升车载体验,支持Qi2.2,磁吸强、散热好,第三方配件需认准MFM认证。
    的头像 发表于 03-19 08:17 866次阅读
    苹果17可以无线充电吗?<b class='flag-5'>第三方</b>配件怎么选?

    CW32W031调制频率的话有第三方软件工具么?

    请问,CW32W031调制频率的话,有第三方软件工具么?仿真软件也行
    发表于 01-19 06:54

    DEKRA德凯获得沃尔沃汽车第三方实验室认可资质

    近日,DEKRA德凯上海实验室成功通过沃尔沃汽车材料工程中心的严格评审,被正式列入其认可的第三方实验室名单。
    的头像 发表于 10-16 10:27 894次阅读

    第三方电商数据 API 数据来源深度解析:合规与稳定背后的核心逻辑

    本文揭秘第三方电商数据API的底层逻辑:通过官方授权、生态共享与合规采集重来源,结合严格清洗校验,确保数据稳定、合规、高质。企业选型应关注来源合法性与场景匹配度,避开数据陷阱,实现真正数据驱动增长
    的头像 发表于 10-11 13:55 469次阅读

    SEGGER Ozone调试器支持第三方调试工具

    SEGGER强大的Ozone调试器和性能分析器,长期以来一直深受J-Link和J-Trace用户的信任,现在可以支持第三方调试工具了。
    的头像 发表于 09-29 11:45 1424次阅读

    电子测试行业中的第三方检测机构如何解决平台灵活度低,维护困难等痛点问题?

    在竞争激烈的市场环境中,第三方检测机构面临着诸多挑战,尤其是在来料测试环节。某权威第三方检测机构就曾深陷困境,他们一面要应对产品不确定性高与系统固化严重的矛盾,另一面还需解决已有系
    的头像 发表于 08-06 17:07 983次阅读
    电子测试行业中的<b class='flag-5'>第三方</b>检测机构如何解决平台灵活度低,维护困难等痛点问题?

    如何集成第三方支付API到电商网站

    ​ 在电商网站中,集成第三方支付API是确保交易安全、提升用户体验的关键步骤。本文将逐步指导您完成整个流程,从选择支付提供商到上线后的监控。文章结构清晰,包含代码示例和实用建议,帮助您高效实现支付
    的头像 发表于 07-16 10:35 739次阅读
    如何集成<b class='flag-5'>第三方</b>支付API到电商网站

    天合跟踪获得DNV第三方风洞测试审查报告

    近日, 天合跟踪获得DNV颁发的中国支架行业首张风洞实验第三方审查报告。该风洞报告由天合跟踪与同济大学合作,针对开拓者1P跟踪支架进行了全新的刚性模型测压试验和先进动力学分析研究,并由DNV进行独立
    的头像 发表于 07-08 17:35 1103次阅读

    使用 Claroty SRA 优化第三方 OT 远程访问

    第三方,如原始设备制造商 (OEM) 技术员和维护承包商,是确保 OT 环境可用性、完整性和安全性的关键。负责服务 OT 资产的第三方经常远程工作。这意味着,他们会通过无数广泛使用的解决方案远程连接
    的头像 发表于 06-17 16:11 894次阅读
    使用 Claroty SRA 优化<b class='flag-5'>第三方</b> OT 远程访问

    第三方工业互联网平台有哪些

    第三方工业互联网平台有哪些
    的头像 发表于 06-14 15:48 1476次阅读

    钛和集团荣获零跑汽车第三方实验室资质认可

    近期,钛和集团顺利通过了浙江零跑科技股份有限公司(以下简称“零跑汽车”)对第三方实验室的能力验证及资质审核,助力零跑汽车实现“成为值得尊敬的世界级智能电动车企”的品牌愿景。
    的头像 发表于 06-13 17:00 1534次阅读

    钛和集团荣获吉利汽车第三方实验室资质认可

    近期,钛和集团汽车事业部顺利通过了浙江吉利控股集团有限公司(以下简称“吉利汽车”)对外部实验室的能力验证及资质审核,并获得了第三方实验室认可证书,助力吉利汽车实现“让世界充满吉利”的品牌愿景。
    的头像 发表于 06-10 15:03 1408次阅读

    SGS荣获比亚迪乘用车第三方实验室资质认可证书

    近日,国际公认的测试、检验和认证机构SGS(以下简称:SGS)位于重庆的标瑞新能源实验室(以下简称:SGS-CEC)荣获比亚迪乘用车实验室认可委员会(以下简称:比亚迪)颁发的“乘用车第三方实验室资质认可证书”。
    的头像 发表于 05-20 15:04 1235次阅读