跳过主要内容

请支持Makefile/CMakefile/Meson/命令行构建系统

DA14531

9个月前

发布的andrewl6分 8回答说
3问题

嗨,伙计们,

我们能*请*得到一个标准的构建系统来编译这些东西吗?为了编译下面运行gcc arm工具的东西而需要运行完整的ide是愚蠢的。

我并不在乎你选择的是哪种构建系统。我更喜欢介子,因为你有明确的交叉文件和Visual Studio Code可以直接从介子配置文件获取路径。*然而*,我真的不太关心——只要这个例子有纯文本形式的依赖路径,大多数人可以转换为<他们喜欢的构建系统>和<他们喜欢的IDE>。

此外,它甚至伤害了Dialog本身。在SDK6.0.14中存在一些路径问题和一些丢失的文件,如果您从命令行运行一些持续集成,这些问题可能会被捕获。

谢谢。

9个月前

PM_Dialog

嗨andrewl,

感谢您在我们的BLE公共论坛上提出的问题,也感谢您对我们的BLE解决方案感兴趣。

请您指出您正在使用的对话BLE设备?

它是DA14581(在最初的帖子中标记的),还是DA14531?

谢谢,PM_Dialog

9个月前

andrewl 6分

抱歉,不知道我怎么没看到标签。我用的是DA14531。

我不得不备份到SDK6.0.12来获取一些丢失的文件。

谢谢。

9个月前

PM_Dialog

嗨andrewl,

感谢您修改了最初的帖子。

SDK6.0.14的pxp_reporter示例。期望来自Keil包括IAR和Eclipse项目。

在SDK6.0.14中有一些路径问题和一些丢失的文件,如果你从命令行运行一些持续集成,这些问题可能会被捕获。

你能指出SDK6.0.12中包含的路径问题和哪些文件缺失吗?

谢谢,PM_Dialog

8个月前

马克西米利安 37分

感谢上帝。我以为只有我一个人。为什么芯片制造商总是选择“让生活更轻松”的花哨的ide,但总是设法达到相反的效果,我无法理解。

我正在努力用make/gcc编译示例项目。对于我的申请,这是一个要求。它决定了天气对话框是一个可行的选择作为我们的开发平台。这有几个原因。正如Andrew所提到的,持续集成。使用从命令行运行的工具编写脚本构建管道的能力。构建工具的可用性(gcc和make可以安装在任何值得尊敬的系统上)。减少依赖项的数量,而不是项目代码,而是构建系统本身。

到目前为止,我已经能够编译大容量存储设备示例和baremetal blinky示例。

这样做很简单,只需要一点工作。我不能告诉你生成的二进制文件是否工作,因为我在等待devkit。

注:

设备DA1469x

文件bsp_memory_layout.h包含在特定于项目的custom_config_qspi.h中,但sdk或示例代码中没有提供。我已经删除了#include,似乎它不是必需的。

必须使用-include或-imacros gcc标志强制包含custom_config_qspi.h。这很难看(我个人的观点),因为这种依赖性在代码中没有很好地反映出来。更好的方法是使用编译器标志在qspi和ram之间进行选择。当没有定义标志时,可以使用#error给出一些输出,开发人员可以读取代码并了解可能的选项。

msc示例要求您修改sdk文件(如文档所示)…这也不是很好,因为这意味着sdk和示例都不能开箱编译。这是一个巨大的障碍。没有什么比不能编译的例子更糟糕了……除了那些依赖于预编译的闭源二进制文件的例子;)

说到这里,libble_stack_da1469x。对crypto_init有一个未定义的符号。但是我找不到任何定义它的代码。它的定义是什么?这似乎是让ble示例链接/编译的最后一个缺失的部分。请让我知道我还能提供什么信息。

8个月前

andrewl 6分

你不是一个人。像我们这样试图使用标准的“企业/桌面”开发工具(读作:*PROFESSIONAL*)的C语言开发者组织得不是很好,所以感觉就像没有人在那里。

如果我是一个有点苛刻的人,那么Dialog工具已经足够让人感到痛苦了,它把人们吓跑了。我们不会首先在Dialog上开发任何东西——我们只会移植一些已经在更友好的BLE系统上调试过的东西。

不过,去看看Rust Embedded的人吧。他们已经为尝试在嵌入式上使用Rust打下了许多基础,其中包括许多基础工作,使basic C在Cortex-M和RISC-V上运行得更好。在与Visual Studio Code耦合时,我大量使用了它们的东西。

https://github.com/rust-embedded

聊天系统:https://app.element.io/#/room/#rust-embedded:matrix.org

对于我来说,将Dialog转换为命令行是特别痛苦的,就像DA14531调用到ROM的BLE堆栈。这不是一个典型的做法,所以标准的Cortex-M命令行工具、调试器和示例并没有为此而设置。这也导致了相当奇怪的代码组织,因为一切*必须*是基于回调的。我仍然没有将内容精简到命令行(阅读:介子/忍者)。

整个IDE让我特别讨厌,因为实际上我使用Keil或Eclipse之类的东西的唯一原因是运行调试器。作为代码编辑器/导航器,它们是“糟糕的”环境。

如果你让命令行工作,Maximilian,帮我们一个忙,把它上传到Github之类的东西上,如果你可以的话,这样我们就都能搞定它了。非常感谢。

谢谢。

6个月前

cricke 25分

我也支持andrewl和maximilian。

NordicSemi nRF5 SDK为每个示例提供了一个简单的armgcc Makefile,这使得启动和创建一个可复制的构建环境变得非常简单。

因此,我认为这也是Rust Embedded社区快速创建健壮板条箱的原因,这些板条箱使北欧soc开发成为一种很棒的体验。

例如领先的Rust Embedded工具项目:https://knurling.ferrous-systems.com/培训课程使用NRF52840开发工具包。

如果不是因为有一些基于DA14683 (https://smartsensordevices.com/雷电竞官网登录products/smart-usb-dongle-bluetooth我将使用nRF5 SDK,而不必与SmartSnippets Studio打交道。

3个月前

Micael 145点

大家好,我也认为有一个标准的makefile会很好。

有人成功地创造了一个吗?

2天前

aectaan 5分

嗨,家伙。

刚刚做了基于cmake的项目,并用VS Code测试它。可以随意重用https://github.com/aectaan/da1469x-cmake