问题标签 [nxp-microcontroller]

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 回答
65 浏览

c - C和结构之间的选择

我想在我的微控制器上实现一个多语言菜单,但我不知道如何。

我想到了一些关于具有更多子结构(英语、斯洛文尼亚语、德语……)的结构语言的想法,并且在子结构上有:

但我不知道如何访问我的结构,因为在主类中我有一个设置语言的功能。

例子:

从结构调用值

0 投票
2 回答
1733 浏览

c - 在 LPC1769 微控制器中具有批量传输的 USB 供应商特定类

我正在尝试通过 LPC1769 微控制器中的批量传输来实现 USB 供应商特定的类。我有一个 USB 生物识别模块,提取了它的设备信息。因此,我配置了以下描述符。

现在我的 USB 生物识别设备和我的 LPC1769 设备具有相似类型的设备信息(我已经在我的 Ubuntu PC 上使用此命令“lsusb -v”看到它)但是,当我将它插入 Windows 时,它应该属于 USB 类(Trident符号列表)在设备管理器中。USB 生物识别设备列在“通用串行总线控制器”下。

我找不到任何文档、流程图 谁能指导我如何在供应商特定类别中建立通信。

USB 生物识别设备信息

我的 LPC1769 USB 设备信息

提前谢谢你。

0 投票
1 回答
43 浏览

c - comapare 类型为 uint8_t A[8] = uint8_t B 的两个变量的内容

我想比较两个值都是 uint8_t A[8] = uint8_t B 都包含相同的数据,但一个变量是 continat 是一个块,另一个是一个数组

0 投票
0 回答
321 浏览

android - 如何在 NTAG 21x 或 Desfire 上构建防止克隆的结构

我正在尝试找出一种可行的方法来构建一个安全的结构,以防止在 NTAG 21x 系列或 Desfire 上进行克隆。

我一直在研究,似乎两者都不适合安全系统。但是许多地铁卡/交通NFC卡等都是建立在它上面的,所以我试图理解为什么。

https://play.google.com/store/apps/details?id=com.nxp.taginfolite&hl=en NFC taginfo 应用程序可以显示密码保护区的数据。

卡ID可以通过模拟器克隆....

这是否意味着可以读取所有内容并将其克隆到副本卡上。所以我试图找出一个不允许一个人复制卡片的结构。

有人有这方面的经验吗??

即使使用加密的卡 ID 和内容,如果有人克隆了整个内容,并且当服务器尝试对其进行解密时,它也无法判断该卡是否是副本,但是地铁/火车公司如何设置安全性? ?

0 投票
2 回答
2443 浏览

android - NFC 离主机路由到 Nexus 5X 和 Nexus 6P 上的 UICC

我正在尝试在 Nexus 5X(牛头)或 Nexus 6P(钓鱼者)上配置 NFC 芯片组,以使用 UICC 作为我在 OffHostApduService 中声明的 AID 的 NFC 离主机路由。

编辑 2016 年 1 月 17 日: 我更新了这个问题,还包括了 Nexus 6P,因为我也有机会对其进行测试,它的行为与 5X 完全一样。因此,之前 5X 的所有发现似乎也适用于 6P。

感谢 Michael Roland 在此问题上的回答以及 Nexus 6 (shamu)(请参阅我的 Github 存储库中的 Nexus 6 bcm2079x 配置),我之前在 Nexus 5(锤头)上设法做到了这一点。

但是,Nexus 5X(以及 6P)似乎有所不同:

  • 根据 iFixit 拆解,它包含来自 NXP (PN548) 的新芯片组,而不是像 Nexus 4、5 和 6 那样的 Broadcom bcm2079x)。
  • 我可以确认该设备可以读取 Mifare Classic 标签(这加强了它包含 NXP 芯片组的假设,因为 Broadcom 芯片组不支持 Mifare Classic)并且设备文件/dev/pn548存在
  • 但奇怪的是它同时包含一个libnfc-brcm.conflibnfc-nxp.conf配置文件/system/etc/(你也可以在我的 Github 存储库中找到这些文件)

作为起点,我修改了两个配置文件中的跟踪/日志设置

  • 设置APPL_TRACE_LEVEL0x05brcm
  • NXPLOG_*_LOGLEVEL0x03nxp设置

让我感到奇怪的是,我BrcmNfcJni在启动过程中在 logcat 中看到了很多消息,类似于我在 Nexus 5 和 6 上看到的消息(我不会在配备 NXP 芯片组的设备上看到这些消息):

编辑 1: 我从源代码中了解到这些“BrcmNfc ..”日志消息是从libnfc-nci库中的代码发出的。在以前的设备上,NCI(代表:NFC控制器接口)仅用于 Broadcom 芯片组猜这就是代码使用前缀“Brcm”进行日志记录的原因)但显然,新的 NXP 芯片组现在也使用这种标准化接口(这很好),现在我们也可以看到“Brcm...”日志消息,即使是 NXP 芯片组。

编辑 3: 两款手机(Nexus 5X 和 6P)似乎都包含运行固件版本 10.01.19(至少在 Android 6.0.1 版本中)的NXP PN548/C2 NFC 芯片组。

当然,NXP pn54x halimpl 也有输出:

因此,作为第一个开始,我尝试修改libnfc-nxp.conf文件,从注释指示 UICC 或 SWP 的参数开始:

并将A0EC标签设置NXP_CORE_CONF_EXTN0x01(因为注释表明该标签负责 SWP1 连接器):

不幸的是,这不起作用,我仍然在主机系统中收到针对我的 offhost-service 的 APDU(如此 logcat 消息所示:)E/HostEmulationManager( 3434): AID that was meant to go off-host was routed to host.

在后来的尝试中,我还尝试使用中的参数libnfc-brcm.conf(如 Michael Roland 在上述问题中所述),但仍然没有成功。

问题:

  • 有没有人设法在 Nexus 5X 或 6P 上配置 NFC 离主机路由去 UICC?
  • 或者也许有一些提示可以让我寻找进一步的见解?
  • PN548 芯片组的数据表也会很有帮助。

编辑 2: 我仍然没有找到可行的解决方案,但我将我的尝试推送到了dev1分支下的 github 存储库。我还为每个测试推送了生成的 logcat 输出。我正在 Stock Android 6.0.1 上使用新的无根 Nexus 5X 进行测试。(编辑:与此同时,我还得到了一个 Nexus 6P 进行测试,但它的行为相同。)为了修改系统分区上的配置文件,我暂时启动到一个侧面加载的恢复映像:(fastboot boot twrp-2.8.7.2-bullhead.img)。

目前我总是得到这个错误(我也已经尝试过使用0xf20xf4作为脱离主机的路由目标):

0 投票
2 回答
255 浏览

cortex-m3 - 在 Cortex M3 微控制器中,Flash 的 .data 部分中的变量何时会被复制到 SRAM,是

在 Cortex M3 微控制器中,Flash 的 .data 部分中的变量何时会被复制到 SRAM,是在获取复位和初始 SP 指针之前还是之后?我正在使用 Keil4 和 LPC 1778。

0 投票
1 回答
114 浏览

microcontroller - Cortex M3 上电后的操作顺序(准确地说是从第一个机器周期开始)

我知道第一个引导代码被执行,然后如果控制器没有保存在 ISP 和 CRP 中,它会转到用户代码、向量表(加载 SP 和 PC)。你能准确地指定它是如何进入引导代码的吗?请提供是否有任何文件可用

0 投票
0 回答
531 浏览

c - 为 LPC1769 编写 GPIO 中断

我开发了一个应用程序来使用 lpc1769 的定时器生成脉冲(pwm)。脉冲周期为10毫秒,脉冲宽度可根据需要变化。脉冲宽度是根据参考信号产生的,参考信号是 10 毫秒的方波(开启周期为 7.2 毫秒,关闭周期为 2.8 毫秒)。只要有这个信号的上升沿,PWM 脉冲就应该启动。现在这工作正常。为了检测上升沿,我使用了带有外部中断 3 的 GPIO 中断,ISR 如下:

1) 如果 GPIO 引脚上的上升沿(P2.11)

2) 清除引脚上的上升沿状态。

3)然后将计时器设置为几毫秒

并在定时器 ISR 中 1)清除任何挂起的定时器 IRQ 2)使产生 PWM 脉冲的 GPIO 引脚为高电平(P2.6) 3)将定时器设置为几毫秒,然后清除引脚(P2.6)(相同的定时器在两个 ISR 中都使用) 4)禁用定时器并重新启用 GPIO 引脚(P2.11)上的上升沿中断,因此在参考信号的上升沿再次提供外部中断 3 的 ISR,并继续如上。

现在我在开发应用程序的代码中遇到了问题,

1) 如果上升沿禁用中断并将定时器设置为 8 毫秒延迟。

2) 在定时器 ISR 产生 10 个 pwm 周期后,重新启用外部中断。(两个 ISR 使用相同的计时器)。

3)所以我的输出应该是相对于参考信号的上升沿延迟 8 毫秒,然后是 10 个 pwm 周期(都具有 10ms 的时间段),再是相对于参考信号的上升沿和 10 个 pwm 周期的 8ms 延迟。

但是在 10 个周期后,当我重新启用外部中断时,无论参考信号的上升沿如何,都会增加 8ms 的延迟。每当最后 10 个周期完成时,我都会再次启用中断,所以从这一点开始,它只会增加 8ms 的延迟。我的问题是,如果为参考信号的上升沿启用中断,那么它应该只为上升沿提供 ISR。但在这种情况下不会发生这种情况。我不理解这种行为。///////////////////////////////////////// ///////////////////////////////////////// / 这是我的代码,这是外部中断的 ISR3

Timer1 ISR 是

和函数 start_timer1 用于初始化 timer1 并将 timer1 设置为给定数量的滴答声和匹配中断。set_timer1 :为给定的滴答声和中断设置 timer1。stop_timer1 :禁用 timer1 并启用外部中断 3。

0 投票
0 回答
419 浏览

android - Android 中的 Mifare Plus 安全级别 2 支持

我正在尝试使用 android 应用程序与安全级别 2的Mifare Plus卡进行通信。

我能够在android中获取nfcA对象。

当我调用 transceive 时,我得到一个Tag lost exception

我四处搜寻,发现 Mifare Plus 需要更多的能力来进行 AES 操作。因此,我尝试将卡尽可能靠近我的设备并围绕中心放置。

我花了一些时间,但我找到了一个最佳位置,我的收发电话通过了。但是,它在第​​二次收发调用中失败(第二次通过 AES 身份验证)。再试几次,它就清除了。AES认证成功!

但是,在那之后我在Mifare Authentication失败了。

我尝试将卡放在不同的位置,但仍然没有通过。我不断收到标签丢失异常。奇怪的是,一旦我在同一个地方也遇到了IO 异常。(Mifare 认证)

我也试过setTimeout () 但没有帮助。

是安卓/设备的限制还是我遗漏了什么?任何帮助或信息都将意味着很多。谢谢!

PS。我使用的设备带有 NXP 芯片组/固件,所以我猜设备也应该支持 SL2。我对吗?再次感谢!

0 投票
1 回答
1540 浏览

c - Diab 编译器中的解析错误

我正在尝试在 NXP 的 MPC5748G 上运行 LZMA(C 版本)(7-zip.org/sdk.html),通过编译一个简单的代码来编码/解码流,但我得到了一些错误......但是文件在我的笔记本电脑上成功编译,我能够运行 LZMA 应用程序

以下是 DCC 显示的错误:

此错误适用于 diab 编译器,这是我在文档中发现的:

我不是目标源代码的作者,也不是 C 语言中的 LZMA SDK。我所了解的是 LZMA 编码器为编码器分配了至少 1Mb 的 RAM,而 MPC5748 仅提供 768Kb 的 RAM。

所以我已将问题标记为 LZMA 和 diab 编译器(未找到标记),只有在两者中工作的人才能帮助我

更新

我删除了 dld 中的问题:警告:文件 'lib/lzma/LzmaLib.o' 中的未定义符号 'LzmaEncProps_Init' 通过将相应的源文件包含到我的 makefile 中,但是 HEAP 问题仍然存在。问题消失了但是应用程序无法运行使用 trace32 调试器我能够诊断此错误的来源:在线

该行返回空 p->probs 所以似乎 alloc 无法分配所有需要的大小

谢谢