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.

[参考译文] RTOS/CC2564:CC2564MODA RTOS 支持 msp432p4x1[y/v/1]现在我们有>128KB SRAM

Guru**** 2595805 points
Other Parts Discussed in Thread: TM4C1294NCPDT, MSP430F5418A, CC2564CMSP432BTBLESW, CC2650, CC2564, BQ40Z60

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/691441/rtos-cc2564-cc2564moda-rtos-support-for-msp432p4x1-y-v-1-now-we-have-128kb-sram

器件型号:CC2564
主题中讨论的其他器件:TM4C1294NCPDTMSP430F5418ACC2650BQ40Z60

工具/软件:TI-RTOS

现在、msp432具有128/256kb SRAM 变体、我们可以拥有 Bluetopia 栈的 RTOS 版本吗?

我使用在 FreeRTOS 10.0.1下运行的较旧的4.0.1.4 BTPSVER 堆栈来调制 TM4C 库(1.2 R2)。 一旦我从 HCI_SendPacket、HCI_DriverCallback 和 GetAccess 中删除了总线故障、尝试访问地址0x400FE000 (TM4C 器件 ID 寄存器)[http://www.ti.com/lit/ds/symlink/tm4c1294ncpdt.pdf 第255页]、这似乎没有问题;

修改了 HCI_DriverCallback

i.HCI_DriverCallback:00000310 HCI_DriverCallback ;数据 XREF:HCI_OpenDriver+7C↓o
i.HCI_DriverCallback:00000310 ;i.HCI_OpenDriver:OFF_6CC↓o
i.HCI_DriverCallback:00000310
i.HCI_DriverCallback:00000310 var_3C =-0x3C
i.HCI_DriverCallback:00000310 var_38 =-0x38
i.HCI_DriverCallback:00000310 var_28 =-0x28.....



i.HCI_DriverCallback:00000498 Check_msp432p4x1vy1 ;代码 XREF:HCI_DriverCallback+16C↑j
i.HCI_DriverCallback:00000498 LDR.W R12、=0x2010C0
i.HCI_DriverCallback:0000049C LDR.W R0、[R12]
i.HCI_DriverCallback:000004A0 LDR R1、=0xF0F0
i.HCI_DriverCallback:000004A2 Ds R0、R1
i.HCI_DriverCallback:000004A4 LDR R1、=0xA010
i.HCI_DriverCallback:000004A6 CMP R0、R1
i.HCI_DriverCallback:000004A8 BEQ LOC_516
i.HCI_DriverCallback:000004AA
i.HCI_DriverCallback:000004AA Check_msp432p401r_device
i.HCI_DriverCallback:000004AA LDR R1、=0xA000
i.HCI_DriverCallback:000004AC CMP R0、R1
i.HCI_DriverCallback:000004AE BEQ LOC_516
i.HCI_DriverCallback:000004B0 LDR R1、=0x400FE3FC
i.HCI_DriverCallback:000004B2 LDR.W R10、=0xACE15C37
i.HCI_DriverCallback:000004B6 MOV.W LR、#0x3FC
i.HCI_DriverCallback:000004BA MOV R0、#0
i.HCI_DriverCallback:000004BC MOV R3、R10
i.HCI_DriverCallback:000004BE MOV R2、LR
i.HCI_DriverCallback:000004C0 STR.W R10、[R1]
i.HCI_DriverCallback:000004C4 LDR.W R8、=0x2010C0

…

I.HCI_DriverCallback:000005D2;函数末尾 HCI_DriverCallback
i.HCI_DriverCallback:000005D2
i.HCI_DriverCallback:000005D2;---
i.HCI_DriverCallback:000005D4 OFF_5D4 DCD DriverInfoList ;数据 XREF:HCI_DriverCallback+1A↑r
i.HCI_DriverCallback:000005D4 ;HCI_DriverCallback+276↑r
i.HCI_DriverCallback:000005D8 DWORD_5D8 DCD 0x2010C0 ;数据 XREF:HCI_DriverCallback:Check_msp432p4x1vy1↑r
i.HCI_DriverCallback:000005DC DWORD_5DC DCD 0xF0F0 ;数据 XREF:HCI_DriverCallback+190↑r
i.HCI_DriverCallback:000005E0 DWORD_5E0 DCD 0xA010 ;数据 XREF:HCI_DriverCallback+194↑r
i.HCI_DriverCallback:000005E4 DWORD_5E4 DCD 0xA000 ;数据 XREF:HCI_DriverCallback:Check_msp432p401r_device↑r
i.HCI_DriverCallback:000005E8 DWORD_5e8 DCD 0xACE15C37 ;数据 XREF:HCI_DriverCallback+1A2↑r
i.HCI_DriverCallback:000005EC OFF_5ec DCD 0x400FE3FC ;数据 XREF:HCI_DriverCallback+1A0↑r
i.HCI_DriverCallback:000005F0 OFF_5F0 DCD 0x2010C0 ;数据 XREF:HCI_DriverCallback+1B4↑r
i.HCI_DriverCallback:000005F0;i.HCI_DriverCallback 结束
i.HCI_DriverCallback:000005F0 

修改了 HCI_SendPacket

 
i.HCI_SendPacket:00000768;=========== S U B R O U T I N E ================================================
i.HCI_SendPacket:00000768
i.HCI_SendPacket:00000768
i.HCI_SendPacket:00000768 导出 HCI_SendPacket
i.HCI_SendPacket:00000768 HCI_SendPacket
i.HCI_SendPacket:00000768
i.HCI_SendPacket:00000768 var_28 =-0x28....



i.HCI_SendPacket:000007DC loc_7DC ;代码 XREF:HCI_SendPacket+62↑j
i.HCI_SendPacket:000007DC LDR.W R12、=0x2010C0
i.HCI_SendPacket:000007E0 LDR.W R0、[R12]
i.HCI_SendPacket:000007E4 LDR R1、=0xF0F0
i.HCI_SendPacket:000007E6 Ds R0、R1
i.HCI_SendPacket:000007E8 LDR R1、=0xA010
i.HCI_SendPacket:000007EA CMP R0、R1
i.HCI_SendPacket:000007EC BEQ LOC_856
i.HCI_SendPacket:000007EE LDR R1、=0xA000
i.HCI_SendPacket:000007F0 CMP R0、R1
i.HCI_SendPacket:000007F2 BEQ LOC_856



i.HCI_SendPacket:000008AA;函数结束 HCI_SendPacket
i.HCI_SendPacket:000008AA
i.HCI_SendPacket:000008AA;---
i.HCI_SendPacket:000008AE 对齐0x10
i.HCI_SendPacket:000008B0 OFF_8B0 DCD DriverInfoInitialized
i.HCI_SendPacket:000008B0 ;数据 XREF:HCI_SendPacket+6↑r
i.HCI_SendPacket:000008B0 ;HCI_SendPacket+22↑r
i.HCI_SendPacket:000008B4 OFF_8B4 DCD 0x2010C0 ;数据 XREF:HCI_SendPacket:loc_7DC↑r
i.HCI_SendPacket:000008B8 DWORD_8B8 DCD 0xF0F0 ;数据 XREF:HCI_SendPacket+7C↑r
i.HCI_SendPacket:000008BC DWORD_8BC DCD 0xA010 ;数据 XREF:HCI_SendPacket+80↑r
i.HCI_SendPacket:000008C0 DWORD_8C0 DCD 0xA000 ;数据 XREF:HCI_SendPacket+86↑r
i.HCI_SendPacket:000008C4 DWORD_8C4 DCD 0xACE15C37 ;数据 XREF:HCI_SendPacket+8E↑r
i.HCI_SendPacket:000008C8 OFF_8C8 DCD 0x400FE3FC ;数据 XREF:HCI_SendPacket+8C↑r
i.HCI_SendPacket:000008CC OFF_8CC DCD 0x400FEF00 ;数据 XREF:HCI_SendPacket+9C↑r
i.HCI_SendPacket:000008CC;i.HCI_SendPacket 结束 

修改了 GetAccess

 

i. GetAccess:00000004 ;================= S U B R O U T I N E ================================================
i.GetAccess:00000004
i.GetAccess:00000004
i.GetAccess:00000004导出 GetAccess
i.GetAccess:00000004 GetAccess
i.GetAccess:00000004
i.GetAccess:00000004 arg_C = 0xC
i.GetAccess:00000004
i.GetAccess:00000004 PUSH{R4、LR}
i.GetAccess
#0XTR0:0000.ULDC





、0000.0X0X0_R0_R0_R0_R1r、#Get0_800R、1000_R0_R0_R0_R0_R1r .0_R1r、ILDC #4
i.GetAccess:0000001A BNE Loc_28
i.GetAccess:0000001C LDR R0、[R1、#4]
i.GetAccess:0000001E LSR R1、R0、#0x1C
i.GetAccess:00000020 CMP R1、#1
i.GetAccess:00000022 BNE_28
i.GetAccess:24 UBFX、#0x0000.GetAccess:

0000.28↑
;#00000028 i.GetAccess:0000.28 GetAccess+1E↑










↑j i.GetAccess:00000028 MOVs R2,#0x18 i.GetAccess:0000002A MO3C R1,#0 i.GetAccess:0000002C MOV R0,R4 i.GetAccess:0000002E BL BTPS_Mem3C i.GetAccess:00000032 MO3C R0,#0 i.GetAccess:34 P.DRVs;#0000003R0:#.GetAccess+0.3C.eV

函数结束 GetAccess
i.GetAccess:0000003C
i.GetAccess:0000003C;------------------------------
i.GetAccess:0000003E 对齐0x10
i.GetAccess:00000040 OFF_40 DCD 0x2010C0;数据 XREF:GetAccess+C↑r
i.GetAccess:00000040;i.GetAccess 结束 

GetAccess 函数加载 DeviceID 的最低8位并检查0x10处的位、这意味着最新的 MSP432系列(0x0000A01#)。 TM4C 是0x100A0000。 如果我没有过多关注、看起来像一个小的大端字节序交换。 在所有情况下、该模块都可以更好地正确遵循128KB SRAM 版本 TM4C 芯片的相同代码路径。 我假设代码就是这样、然后在 BTPS_MemoryInitialize 函数中相应地分配数组大小。

在 MSP432p4111 launchpad 上、似乎调用大小为24的上述 MOD BTPS_MemInitialize、这似乎... 对吧? 错误?

我可以得到一个配对/取消配对、连接到 RFCOMM 并运行、尽管 报价不是100%、但足以证明 一点。 TM4C 和 MSP432非常相似、因此可以直接移植代码(轻松!)。 之前的库是使用以下 make 行构建的;

ARM C/C++编译器、4.1 [构建561] armcc -thumb -split_sections -c -cpu=Cortex-M4.FP -FPU=FPv4-SP -diag_suppress=186、1293、1296 -I。\n\t 稳定的蓝牙\tbranches\texcertins\dcs\tbranches\tbranches\tense\tbranches\tbranches\texcertines\contines\contines\contines\contines\contines\continues\tinuertines\contines\contines\continuertinues\tinues\tinues\tinues\tinues\contines\contines\continues\continuertinues\continues\continues\continues\continues\continues\continues\continues\continues\continues\continues\continues\continues\continues\contines

simal/注释:错误的开发人员在0x400FE000处放置读取 TM4C 器件 ID 的特定硬件代码、这会导致 HCI_SendPacket、HCI_CallbackHandle 和 GetAccess 中的存储器总线故障。 读取 msp432 TLV 结构的 ASM 更改可解决此问题。

我们是否可以拥有最新的 BT 4.2堆栈的编译版本以及适用于 cc2564B 的补丁1.6? 好极了:)  

我有一百台设备正在等待这款完整经典+低功耗堆栈的 FreeRTOS 版本、以便从 Windows CE.net 实现升级路径(不要问...) Android 或 iOS。 我甚至有一个已准备好的插入器、它将 MSP430F5418A 封装更改为一个位于顶部的 RGZ 封装的利特 BGA 板。

通过 QFP 0.25x1.2mm 焊盘顶部的0.3mm BGA 封装 MSP432至 MSP430F5418A 转插板。

e2e.ti.com/.../MSP432-Adapater.pdf

使用 Kapton 胶带将焊球与焊盘对齐、并使用 X 射线机确认对齐(测量两次)、然后通过丝印板和助焊剂将与引线式0.3mm 焊球插入的焊球进行焊球。 非常可重复的过程

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

    您好 Lucas、

    [引用 USER="Lucas Oldfield"]现在 msp432有一个128/256kb 的 SRAM 变体,我们可以有一个 Bluetopia 栈的 RTOS 版本吗?

    目前、 没有计划在 CC2564CMSP432BTBLESW SDK 中添加 RTOS 支持。 您的应用程序需要 RTOS、而不是 SDK 中的 Noos 版本、是否有具体原因?

    此致、

    Vihang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是移动发布的,因此我将保持这一短时间,并在以后再做一个更长的发布。 简单的答案是肯定的。 我将旧接口 BT Classic、BTLE 和新 WiFi 物联网样式的数据馈送和请求混合在一起。 我正在重新启动其中一个产品(公司内部),我需要连接固定数据、实时显示、实时报告、 连接和收集20多个其他 Zigbee ADC、并通过 MQQT 将其压缩为 UI 和数据流、然后传输到 Rabbitmq、客户端应用会在其中提取实时数据以分析、预测和故障查找。 只需跟踪这么多任务! 我将混合使用 cc2564、cc2650、cc3220和 msp432p4011。 OTA 更新和 Web 界面是必不可少的,要使该 Web 直接可用,关键是要将培根带回家。 在我们最终将 BT 标准迁移到 BLE 之前、cc2564一直在我的道路上保持现有设备的 BT 经典。 但这是很长的路要走,我现在必须证明这一点。 在我们的高磁性高温和冲击环境中、我遇到了无数电池问题。 我已经用运行两个 LTO 单元的 bq40z60设备解决了这一问题。 它们是如此安全。 我可以用钉子刺穿它们、并继续充电和使用它们。 这已经变成了一个很长的移动应答。 您能否更新构建环境以支持此操作? 这看起来相当简单、因为样板文件 RTOS 代码是相当静态的。 我只能用库和 include t 有限公司说得好。 库与3月的最新 SDK 版本相同。 我很高兴进行调试:)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Lucas、

    [引用 user="Lucas Oldfield"]是否可以不更新构建环境以支持此操作?

    恐怕如果我们为此支持 RTOS 的平台发布 TI 版本、那么这并不像更新构建环境那样简单。 涉及开发(应用和 HAL 移植)和测试时间/资源。 虽然我们目前没有任何计划、但我们将在未来考虑您的请求。

    [引用用户="Lucas Oldfield">我可以只使用库和 include tbh。 库与3月的最新 SDK 版本相同。 我很高兴进行调试:)

    在这种情况下、您可以联系我们的第三方 cloud2gnd、他可能会为您提供库二进制文件的自定义版本。

    processors.wiki.ti.com/.../CC256x_Forum_Guidelines_and_FAQs

    此致、

    Vihang

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

    好的、我将直接与他们联系。

    我已经详细了解了 STM32编译、rvmdk 下名为"Bluetopia_16_M4.fp_hw_fp.lib"的库似乎在 v4.2.1.0下链接并正常运行。

    我将继续使用此库、直到发现问题。 它没有使用-thumb 选项进行编译、但这似乎无关紧要。

    TM4C 库路由需要较旧的黑客才能使其正常工作。

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

    使用 STM32库中的 Bluetopia_16_M4.fp_hw_fp.lib 似乎在供参考。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我允许我在 git 集线器上发布多少关于使用 MSP432P4x1x 系列上的 STM32对象/库的信息?

    我有一个相当复杂的 DMA 外设/存储器散聚 HCI 层机制、这对他人很有用。 我不想在分发二进制文件等方面遇到问题。

    我看到有; github.com/ti-simplelink

    驱动程序库和连接库的来源将有助于实现目标。 只是一个想法...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    卢卡斯

    [引用 user="Lucas Oldfield"]我允许在 git-hub 上发布多少关于使用 MSP432P4x1x 系列上的 STM32对象/库的信息?

    具体取决于您要公开发布的源代码。 如果此源代码最初是 TI SDK 版本的一部分、请参阅许可协议的"许可授予和使用限制"和"有限源代码许可"部分。 这是您在安装 SDK 时必须同意的相同许可协议。

    此致、

    Vihang