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

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

3天内不再提示

[LPC55S6X]解决在-dist之后无法编译的问题的思路

冬至子 来源:linshire 作者:linshire 2023-10-11 17:00 次阅读

背景
在进行bsp适配的时候,在bsplpc55sxxlpc55s36_nxp_evk下输入命令scons —dist,

1.jpg

等待导出成功,然后以dist文件下的工程开始开发,注意此时dist文件夹可以放置在任意地方,此时在distproject下scons编译,会出现如下错误,为了更清楚的复现报错,这里并没有使用多线程编译

1.jpg

发现问题
当然对至于这样的报错。必然先确认在dist下是否真的存在这个文件,结果是没有的,那就去bsp下寻找,这里使用了everything搜索工具

1.jpg

在查找到文件之后,复制过去到dist下,然后接着编译,会继续发现报错缺少其他文件,而且很显然,这些文件都在一个文件夹下,即bsplpc55sxxLibrariesCMSISCoreInclude,那么可以肯定的是,同时对比dist目录,可以肯定的是,CMSIS整个文件夹都没有被scons —dist打包出去

1.jpg

那么到这里基本就明确了问题,现在有两个思路可以去解决这个问题:

修改env中的scons —dist脚本,这样就不用动CMSIS目录,不用去修改控制文件编译的SConscript脚本
移动CMSIS文件夹的位置,然后需要修改SConscript文件才可以编译成功,这样就不用动env
那么这两种方案呢,修改env需要考虑到其他bsp的导出问题,同时需要考虑顶层的设计,这里呢,仅仅把env中控制scons —dist的位置指明,具体位置在 这里 ,而且其他bsp没有出现这个问题,足以证明是改bsp出现了问题,就此可以确定我们需要修改的是CMSIS的路径

如何解决
修改CMSIS文件夹的位置
那么现在确定了我们将要移动CMSIS文件夹,那么把它移向哪里呢,显然我们目前不知道,怎么办,看stm32
嗯就是这么直接,stm32放哪里我们放哪里,可以明确看到CMSIS是在drivers下的,那么很直接,我们复制过去同样的位置就可以了,将两个路径都放出来了,我们可以对比一下

1.jpg

2.jpg

到此是不是就结束了呢,显然并不是,还需要编译一下去测试才可以提交pr,诶这个时候我们会发现编译通不过了,仍然找不到”core_cm33.h”文件,让我们想想是哪里出了问题,现在文件有了,我们是不是该考虑一下编译器为什么找不到,很显然我们应该去看SConscript脚本了,在那里为编译器寻找文件指明了路径,但是那么多的SConscript脚本,我们应该去寻找哪一个,这里呢,笔者的想法是找最近的,显然lpc55sxxLibrariesdriversSConscript最近,遂,看!!!!

1.jpg

看来里边是没有的,全是对.c文件的控制,等等,我们CMSIScoreinclude下的可都是.h文件,我们应该从上层向下寻找,来到bsp根目录下

1.jpg

这里我就直接用vscode打开了SConscript,大家注意看路径,是bsp根目录下,很显然这个SConscript就是 了,第五行很明显确定了CMSIS的路径,(这里是我修改之后的),那么接下来开始编译

解决一个问题是没有那么容易的,这里(LPC55sxx里)还有其他使用CMSIS的bsp,他们的SConscript脚本我们也需要一并修改了

到此呢,就真的结束了见 pr,我还不小心将CMSIS下的LICENSE.txt文件删掉了,又加了一个commit才解决这件事情,最后的pr长这样

1.jpg

在满鉴霆大佬和杨熙大佬的建议下,最终的解决办法采用了另一种解决方案

修改sdk_dist.py文件
sdk_dist.py文件在bsplpc55sxxtools下,env在接受到scons —dist之后会调用该脚本
只需要在脚本里添加一句话即可

print("= > copy bsp CMSIS")
bsp_copy_files(os.path.join(library_path, 'CMSIS'), os.path.join(library_dir, 'CMSIS'))

然后scons —dist的效果是这样的

1.jpg

然后编译测试一下

1.jpg

到这里就真的结束啦.

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

    关注

    112

    文章

    16350

    浏览量

    177947
  • LPC
    LPC
    +关注

    关注

    8

    文章

    136

    浏览量

    77632
  • STM32
    +关注

    关注

    2270

    文章

    10897

    浏览量

    355867
  • CMSIS
    +关注

    关注

    0

    文章

    40

    浏览量

    11898
收藏 人收藏

    评论

    相关推荐

    使用市面上首款基于 Arm® Cortex®-M33 的 MCU – 第 1 部分:管理功耗与性能

    开发应用时,设计人员可将该电路板与 MCUXpresso 集成开发环境 (IDE) 和 SDK 配合使用,该套件使用 PowerQuad 功能(如前所述)等 LPC55S6x 专用硬件。此外,IAR
    的头像 发表于 08-02 11:34 1w次阅读

    LPC55S6x high speed spi 求助

    hi,all 最近在做芯片选型,需要寻找一款支持50MHz工作频率的SPI接口,观察到LPC55S6x high speed spi mode下宣称可以工作到50MHz,但看其timing数据
    发表于 03-06 17:26

    LPC55S69对接RTduino的相关工作

    该文记录 LPC55S69 开发板体验期间,对接 RTduino 的相关工作。RTduino 是基于 RT-Thread 框架下进一步的封装,使得用户可以像开发 Arduino 一样快速上手
    发表于 02-24 14:51

    LPC55S69 Flashmagic不编程的原因?

    tiegf6JWnvo5(USB 引导加载程序)读取签名有效。阅读部门作品擦除部门作品。但编程不工作:(按开始)LPC55S69(USB,LPC5500)操作失败。(编程 - 无法
    发表于 03-15 07:54

    LPC55S6Xdist之后无法编译的解决思路

    背景进行bsp适配的时候,bsp\lpc55sxx\lpc55s36_nxp_evk下输入命令scons —dist,等待导出成功,然后
    发表于 03-15 14:50

    LPC55S1x VBAT_DCDC上升时间要求是什么?

    根据 LPC55S1x 勘误表,VBAT_DCDC 引脚电源的上升时间应至少为 2.6 ms,以保证最坏情况下的温度下启动。此要求是否有最大转换率?例如,我们正在考虑使用的稳压器具有以下启动时
    发表于 03-20 06:40

    LPC55S69的双核性能技巧是什么?

    我 以为 我看到了关于优化 LPC55S6x 系列双核性能的应用说明,但我现在找不到任何东西。有这样的资源吗?我主要寻找的是有关内存争用的信息。我看到两个内核共享相同的闪存接口。从闪存运行的两个内核可以实现什么样的性能?第二个核心是否需要从 RAM 运行才有用?
    发表于 03-31 09:07

    求分享LPC55S69 EVK的预编译CMSIS-DSP库

    为了比较 CM33 和 PowerQuad 之间的数学处理性能, 我正在寻找 CMSIS-DSP 预编译库文件 (.a) 可用于 LPC55S69EVK 的 MCUXpresso, 但我无法在任
    发表于 04-06 08:21

    难道不能将CPU保留控制中的位0设置为0表示没有CPU保留吗?

    LPC55S6x/LPC55S2x/LPC552x 用户手册(2.4 版 - 2021 年 10 月 8 日)表 328 中描述,调用
    发表于 04-19 07:46

    求分享LPC55S0x / LPC550x 数据表 v1.4 表 39 脚注 [7]“最佳性能”说明

    LPC55S0x / LPC550x 数据表 v1.4 中,第 12.2 节 16 位 ADC 特性,表 39,脚注 [7] 已更新(与数据表 v1.2 相比): 我的问题: 1. 脚注
    发表于 05-04 06:41

    带USB引导加载程序的LPC55S69USB0不工作怎么解决?

    LPC55S6x/LPC55S2x/LPC552x 用户手册 UM11126 说USB0也可以用于 ISP 模式。 我用LPCXpresso55S69试过这个: 擦除闪存 将
    发表于 05-06 08:38

    LPC55S系列的最大IO电压是多少?

    (参见表 24) ”。 LPC55S6x 能否 1.8V 下工作,同时将 3.3V 信号驱动到设备中而不损坏它?
    发表于 05-31 06:38

    LPC55S16JEV98E NXP Semiconductors LPC551x/S1x系列微控制器

    电子发烧友网为你提供NXP(ti)LPC55S16JEV98E相关产品参数、数据手册,更有LPC55S16JEV98E的引脚图、接线图、封装手册、中文资料、英文资料,LPC55S16JEV98E真值表,
    发表于 10-29 14:06

    LPC55S66JBD64K NXP Semiconductors LPC55S6x Arm® Cortex®-M33微控制器

    电子发烧友网为你提供NXP(ti)LPC55S66JBD64K相关产品参数、数据手册,更有LPC55S66JBD64K的引脚图、接线图、封装手册、中文资料、英文资料,LPC55S66JBD64K真值表,
    发表于 10-29 13:06

    LPC553x/LPC55S3x上的无刷直流(BLDC)电机控制演示

    电子发烧友网站提供《LPC553x/LPC55S3x上的无刷直流(BLDC)电机控制演示.pdf》资料免费下载
    发表于 08-17 15:08 2次下载
    <b class='flag-5'>LPC553x</b>/<b class='flag-5'>LPC55S3x</b>上的无刷直流(BLDC)电机控制演示