问题标签 [nrf51]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
622 浏览

c - 在内存中的特定点分配结构?

我正在尝试在内存中的特定位置创建一个结构:

但是这条线仅在 RAM 中不可保留的位置分配内存。我需要从特定的内存地址开始 malloc 才能正常工作,但是如何?

0 投票
2 回答
458 浏览

objective-c - 将 Objective-C 代码转换为 Swift

我一直在使用 nrf51x。我有一个用 Obj-C 编写的示例代码。我无法将其转换为 Swift。

我试过了

和这个

谁能帮我?非常感谢

0 投票
1 回答
1715 浏览

c++ - 尝试使用 Eclipse/OpenOCD 进行调试时出现“程序文件不存在”

我最近得到了一个 nrf51 蓝牙模块,我正在尝试使用 Eclipse Mars 对其进行调试。我安装了所需的工具链以及 OpenOCD(我正在使用 STLink v2 调试板)。

在控制台中运行 openOCD 和 arm-none-eabi-gdb 时,一切正常。OpenOCD 服务器启动,我可以连接 gdb 工具。

但是,当尝试使用 Eclipse 启动调试会话时,它会抛出错误“启动期间发生异常。原因:程序文件不存在”。构建过程正常完成。这是我第一次使用 Eclipse 进行 C/C++ 开发,也是多年后我第一次使用 Eclipse,所以我什至不知道哪里出了问题。

我尝试在没有运气的情况下弄乱项目设置。谁能给我一个提示?

我应该提到,我使用了一个已经存在的 Makefile,因为我尝试编译了一个北欧 SDK 示例。我对其进行了更改,以便生成的文件可以进行调试。

0 投票
3 回答
609 浏览

c - 如何将联合缓冲区与 RAM 地址进行字节对齐

我目前正在用 C 编写代码并使用 NORDIC(32 位 ARM Cortex M0)的 nRF51 MCU。

我想通过无线电发送工会的缓冲区。为此,我必须将联合缓冲区的地址提供给 PACKETPTR。否则,根据手册参考,给予“PACKETPTR”的地址必须是:字节对齐的 RAM 地址。如果它没有对齐,它会设法获取下一个最接近的,但这样接收器将接收到不完整的缓冲区和“虚拟”数据......

你可以猜到,我的缓冲区不是字节对齐的。这是相关的联合和全局变量。

我的 union 元素必须被打包,以便它们可以容纳 7 个字节;

...

...

一开始我__packedtypedef union. 但它好像m_adv是用一些以前的数据“打包”的,因此buf地址不是与 ram 地址字节对齐的。

所以我删除了它,然后 buf 地址是正确的(即字节与 RAM 地址对齐)。我认为这是解决方案,但几分钟后它再次错位......我的问题是:__packed限定符是否也会因为联合而影响 buf?有没有办法强制buf我的全局变量中的地址对齐?或者有什么建议?

谢谢

0 投票
2 回答
106 浏览

c - 具有静态 const 成员的动态分配数组

如何定义和使用一个动态分配的数组,其成员是static const

背景:我需要执行上述操作,以存储运行时请求的几个事务。下面的代码片段举例说明了如何定义事务。此代码使用 Nordic Semiicondictor nRF5x SDK。

0 投票
1 回答
9952 浏览

c - Make error: make (e=2): The system cannot find the file specified

I am trying to compile a c project on a new windows PC, but when I run make I get:

On my other PC the project is compiling just fine. Also "Fejl 2" is danish for "Error 2", have no idea why that is in danish when the rest is english.

EDIT: Here is the makefile (it's rather long)

0 投票
1 回答
1936 浏览

openocd - 使用 st link v2 mini 和 openocd 的程序 nrf51822

我正在尝试使用带有 openocd 的 st link v2 mini 对 nrf51822 分线板进行编程或上传代码。我一直在关注http://icarus-sensors.github.io/general/starting-with-nRF51822.html的博文教程。但是,我无法使用 openocd 连接到设备。错误消息附在下面。知道有什么问题吗?或者,我可以用其他简单的方法对 nrf51 进行编程吗?

GNU ARM Eclipse 64-bits Open On-Chip Debugger 0.9.0-00073-gdd34716-dirty (2015-05-19-09:55) 在 GNU GPL v2 下获得许可 对于错误报告,请阅读 http://openocd.org/doc /doxygen/bugs.html 信息:自动选择第一个可用的会话传输“hla_swd”。要覆盖使用“传输选择”。信息:选定的传输接管低级目标控制。结果可能与普通 JTAG/SWD 适配器速度不同:1000 kHz 信息:无法匹配请求的速度 1000 kHz,使用 950 kHz 信息:无法匹配请求的速度 1000 kHz,使用 950 kHz 信息:时钟速度 950 kHz 信息:STLINK v2 JTAG v25 API v2 SWIM v4 VID 0x0483 PID 0x3748 信息:使用 stlink api v2 信息:目标电压:3.268965 错误:在过程“init”中初始化模式失败(无法连接到目标)

nrf51822 突破: http ://www.newegg.com/Product/Product.aspx?Item=9SIA7BF37Z1712&nm_mc=OTC-Froogle&cm_mmc=OTC-Froogle- -Gadgets- -Srad+Tech-_-9SIA7BF37Z1712

st 链接 v2 迷你: http ://www.electrodragon.com/product/st-link-v2-programmer-for-stm8-stm32/

0 投票
1 回答
217 浏览

bluetooth - 在 nrf51822 源代码中找不到 sd_ble_enable() 的定义

无法浏览 pca10001->s110 softdevice 的部分功能。是这个函数 sd_ble_enable() 所指的固件代码吗?

0 投票
1 回答
332 浏览

arm - ARM gnu install build error with Nordic nRF51,可能是路径或管理员

我一直在 Windows 10 上安装 ARM 工具链以开发 Nordic nRF51,并按照他们的教程 https://devzone.nordicsemi.com/tutorials/7中的说明进行操作

当我第一次运行 make 时,我得到一个构建错误。

详细说明:我已经在目录 C:\Program Files (x86)\GNU Tools ARM Embedded\5.3 2016q1 中安装了工具链

Coreutils 安装在目录 C:\Program Files (x86)\GnuWin32

Nordict SDK 工具链安装在目录 C:\Program Files (x86)\Nordic Semiconductor\NRF5_SDK

我在用户路径环境中添加了以下内容:C:\Program Files (x86)\GNU Tools ARM Embedded\5.3 2016q1;C:\Program Files (x86)\GnuWin32\bin

在目录 C:\Program Files (x86)\Nordic Semiconductor\NRF5_SDK\components\toolchain\gcc windows.makefile 更改为:

我已经检查过从命令行找到了 make 和 gcc。

按照目录中的教程说明:C:\Program Files (x86)\Nordic Semiconductor\NRF5_SDK\examples\peripheral\blinky\pca20006\blank\armgcc 打开一个 cmd 窗口(作为用户)并运行 make。

错误提示无法创建 _build 目录。

因此,以管理员身份从新的 cmd 窗口重试:

make -d 的输出摘要(在管理窗口中):

似乎 make 找不到 makefile.windows (正确吗?),所以我通过将目标复制到 cmd 并使用 as 来检查路径:

这更改为正确的目录。所以我相信目标路径是正确的。

问题:为什么需要管理员来运行 make,为什么它没有正确的权限来创建 _build 目录?

在管理窗口中运行 make 时失败是什么?

提前致谢。

0 投票
1 回答
349 浏览

bluetooth-lowenergy - 无法闪存到软设备

我正在使用 nRF5 SDK 来刷新 softdevice pca10001 s110,并且当我使用 make 时flash_softdevice,它​​会显示以下错误行: