问题标签 [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.
c - C和结构之间的选择
我想在我的微控制器上实现一个多语言菜单,但我不知道如何。
我想到了一些关于具有更多子结构(英语、斯洛文尼亚语、德语……)的结构语言的想法,并且在子结构上有:
但我不知道如何访问我的结构,因为在主类中我有一个设置语言的功能。
例子:
从结构调用值
c - 在 LPC1769 微控制器中具有批量传输的 USB 供应商特定类
我正在尝试通过 LPC1769 微控制器中的批量传输来实现 USB 供应商特定的类。我有一个 USB 生物识别模块,提取了它的设备信息。因此,我配置了以下描述符。
现在我的 USB 生物识别设备和我的 LPC1769 设备具有相似类型的设备信息(我已经在我的 Ubuntu PC 上使用此命令“lsusb -v”看到它)但是,当我将它插入 Windows 时,它应该属于 USB 类(Trident符号列表)在设备管理器中。USB 生物识别设备列在“通用串行总线控制器”下。
我找不到任何文档、流程图 谁能指导我如何在供应商特定类别中建立通信。
USB 生物识别设备信息
我的 LPC1769 USB 设备信息
提前谢谢你。
c - comapare 类型为 uint8_t A[8] = uint8_t B 的两个变量的内容
我想比较两个值都是 uint8_t A[8] = uint8_t B 都包含相同的数据,但一个变量是 continat 是一个块,另一个是一个数组
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 和内容,如果有人克隆了整个内容,并且当服务器尝试对其进行解密时,它也无法判断该卡是否是副本,但是地铁/火车公司如何设置安全性? ?
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.conf
和libnfc-nxp.conf
配置文件/system/etc/
(你也可以在我的 Github 存储库中找到这些文件)
作为起点,我修改了两个配置文件中的跟踪/日志设置
- 设置
APPL_TRACE_LEVEL
为0x05
brcm NXPLOG_*_LOGLEVEL
为0x03
nxp设置
让我感到奇怪的是,我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_EXTN
为0x01
(因为注释表明该标签负责 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
)。
目前我总是得到这个错误(我也已经尝试过使用0xf2
和0xf4
作为脱离主机的路由目标):
cortex-m3 - 在 Cortex M3 微控制器中,Flash 的 .data 部分中的变量何时会被复制到 SRAM,是
在 Cortex M3 微控制器中,Flash 的 .data 部分中的变量何时会被复制到 SRAM,是在获取复位和初始 SP 指针之前还是之后?我正在使用 Keil4 和 LPC 1778。
microcontroller - Cortex M3 上电后的操作顺序(准确地说是从第一个机器周期开始)
我知道第一个引导代码被执行,然后如果控制器没有保存在 ISP 和 CRP 中,它会转到用户代码、向量表(加载 SP 和 PC)。你能准确地指定它是如何进入引导代码的吗?请提供是否有任何文件可用
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。
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。我对吗?再次感谢!
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 无法分配所有需要的大小
谢谢