This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/RF430FRL152HEVM:存储 NDEF 以外的内容

Guru**** 1751730 points
Other Parts Discussed in Thread: RF430FRL152H, TRF7970A
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/684218/ccs-rf430frl152hevm-storing-contents-other-than-ndef

器件型号:RF430FRL152HEVM
主题中讨论的其他器件:RF430FRL152HTRF7970A

工具/软件:Code Composer Studio

您好!

我使用了"RF430FRL152H_NFC_only_Project_NDEF_Support"示例代码、并且能够使用 Android 应用中的 NFC 读取器进行读取。 但提供 NDEF 消息的样本出现在 APP 的 NDEF 部分。 但我需要存储器内容中的数据、如下图所示、我通过读取通用 RFID/NFC 标签获得了数据。

从"sloa166a.pdf"我可以了解 NDEF 协议。 "NFC_NDEF_Message"描述了第一个字节0xE1是 NDEF 魔法编号、这是 NDEF 存储器、但要读取为存储器内容、我需要更改什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Vijaya、

    如果您使用 NDEF 格式让智能手机读取标签、则可以将数据存储在文本记录中或沿这些行的内容中。 或者也可以使用 MIME 类型。 这实际上是您需要确定如何最好地解决的应用特定问题。

    通常,您可以将自己的数据放在功能容器和文件类型描述之后。 例如、在 SLOA166上、如果查看第10页图11、则 URI 标头指示符是数据开始之前的最后一个字节。 请注意、当 NFC 设备检查此与消息长度以验证其是否已到达有效 NDEF 文件的末尾时、您必须在数据结束后包含 TLV 终端器(0xFE)。

    要添加其他类型的 NDEF 消息、您可以找到 TRF7970A 的卡仿真应用手册和固件一个有用的指南、但要获得完整的详细信息、您需要获取 NFC 论坛规范。 TRF7970A 卡仿真的应用手册是 :www.ti.com/.../sloa208 -固件可从该应用手册下载。 固件在 ndef_image.h 文件中提供了不同 NDEF 消息类型的示例、这可能对您有所帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不需要 ndef 格式、为了存储其他格式、我可以遵循什么开始和结束序列。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Vijaya、

    如果您不想使用 NDEF 格式、则需要开发自己的 Android 应用程序来读取数据。 默认情况下、Android 不支持专有非 NDEF 应用程序。 可以开发一个不遵循 NDEF 但 Android 不提供的应用程序。

    请注意、这不是 TI 的限制、而是 Android 的限制。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、

    我正在使用能够读取 NDEF 和非 NDEF 数据的 NXP 应用程序。 在上一篇文章中、我附加了显示在通用标签上读取的非 NDEF 数据的应用程序屏幕截图。

    但 RF430FRL152H 示例程序仅为基于 NDEF 的样本。 如何存储非 NDEF 数据(之前回复中显示的数组)。 当带有上述数组的闪存程序未出现在 NXP Taginfo 应用程序的非 NDEF 部分时。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Vijaya、

    这不是真的、只有专门命名为 NDEF 的项目才适用于 NDEF 格式。 其他项目不使用 NDEF 格式。 默认项目 RF430FRL152H_Default_Project_With Custom_Command 不使用 NDEF 消息传递。

    在这种情况下、您只需定义数据存储在 FRAM 空间中、用于数据记录、该数据记录在项目的.cmd 文件中指定为"FRAM"段。 使用 pragma、您可以确保将数据放在该区域中、然后您使用的 Android 应用程序应该能够读取该数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、Ralph、我明白了。 感谢您解决我的问题。

    我还需要另外一件事、存储器地址可配置为以下示例、

    FRAM: origin = 0xF868,length = 0x0468
    
    FRAM_code:origin = 0xFCD0,length = 0x0300 

    和  

    GROUP (ALL_FRAM)
    {
    GROUP (READ_WRITE_MEMORY)
    {
    .TI.persistent:{}//* for #pragma PERSISTENT */
    .cio:{}//* C I/O buffer */
    .sysmem:{}//*动态存储器分配区域*/}
    
    
    GROUP (READ_ONENT_MEMORY)
    {
    .cinit:{}/*初始化表*/*
    /*.init*/*/*数
    组:/*.init_/*.atrift:/* {}/* C++构造函数表*/
    .mspabi.exidx:{}//* C++构造函数表*/
    .mspabi.extab:{}//* C++构造函数表*/
    .const:{}//*常量数据*/
    }
    
    GROUP (可执行存储器)
    {
    .text:{}//* Code */
    }
    > FRAM_code 

     意味着一些大小的数据写入 FRAM_CODE。 我能否将此代码段移动到 SRAM 或 ROM 等其他区域、以便能够读取0x0768字节的 FRAM?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Vijaya、

    我之前说过、ROM 是"只读存储器"-您不能对其进行更改或添加任何内容。

    SRAM 是易失性的、并且在下电上电时数据会丢失、因此您唯一可以使用 SRAM 的方法是将应用程序代码可以重新创建的数据用于数据。 如果您仅将 ROM 堆栈用于器件、则只需极少的 FRAM 应用空间即可获得我们 Web 示例中 PATCH.c 文件中勘误项的补丁。

    您还可以使用 CCS 中的存储器分配功能来查看您正在使用的空间大小、然后根据需要分配余数。 例如、默认 Web 示例为 FRAM 应用程序代码分配了512字节的 FRAM、但仅使用152字节的 FRAM。 因此、您可以通过这种方式优化存储器分配。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你 Ralph