编辑:我的主要问题是我想在我的计算机上复制TI-84 plus RNG算法,所以我可以用Javascript或Lua这样的语言编写它,以便更快地测试它.
我尝试使用模拟器,但事实证明它比计算器慢.
仅针对相关人员:还有另外一个问题,但回答这个问题只是说如何将已经生成的数字转移到计算机上.我不想要这个.我已经尝试了类似的东西,但我不得不让计算器在整个周末都运行,但仍然没有完成.
我有一个使用双打的C代码.我希望能够在DSP(TMS320)上运行代码.但DSP不支持双精度数,只支持定点数.将代码转换为定点的最佳方法是什么?是否有一个很好的C库用于定点数(实现为整数)?
c signal-processing fixed-point texas-instruments beagleboard
我们公司开发了一个具有蓝牙BLE的硬件单元,我们在Nexus 7(2013)中有一个服务应用程序,我们希望将固件文件发送到设备.文件可以大到500kb.
BT芯片是德州仪器CC2540.
我已经浏览了大量的页面,并扫描了堆栈溢出,以获取有关如何加速从Android设备到CC2540的数据传输的信息,但还没有找到任何非常好的示例.
在北欧半导体主页上,我找到了一个如何计算Android设备最大吞吐量的示例:(https://devzone.nordicsemi.com/index.php/how-do-i-calculate-throughput-for-a-ble - 链接)
Nexus 4 with nRF51822: 4 * 20 B * 1/0.0075 s = 10.6 kB/s = 84 kbps
Run Code Online (Sandbox Code Playgroud)
它说Android设备每个连接间隔可以发送4个20字节的数据包,Android可以处理7.5ms的连接间隔.
在我们的应用程序中,我们当前正在使用writeCharateristics发送数据,并在发送下一个数据块之前等待onWriteCharateristics回调.但是,由于回调大约需要2秒钟才能调用(!!),因此发送速度非常缓慢.这使得数据传输速率为10字节/秒,远离上述示例计算中的10.6kb/s.
我们尝试在两台iOS设备之间传输50kb数据(使用iOS版KeyFob演示版的修改版),传输速率为3.4kb/s.但那是使用CBPeripheralManager UpdateValue,我理解这是一种从外围设备向中心发送通知的方式.
我所看到的是,现在没有办法让Android设备作为外围设备工作.这是否意味着CC2540无法向Nexus 7发送通知?并且是通过通知发送数据最大化吞吐量的唯一方法吗?
TI设备中的堆栈是否会使速度变慢,或者是否有任何方法可以更改任何参数以使Nexus和CC-unit之间的数据传输更快?
我们想到了在Nexus 7设备中实施GATT服务器,并让CC2540订阅了它的通知.那可能吗?这意味着Nexus首先必须扫描CC2540并在找到服务时连接到它.建立连接后,CC2540开始订阅来自Nexus 7的通知.之后,从Nexus向CC2540发送通知,传输速率更高.
希望其他人一直试图做我们想做的事情!
我将为德州仪器DaVinci平台编写一些图像处理程序.有适合C语言编程的工具,但我想知道是否真的可以在不使用汇编语言的情况下充分利用DSP处理器.你知道在这个DSP平台上用C语言编写的程序和汇编程序之间的速度比较吗?
performance assembly signal-processing texas-instruments davinci
当尝试处理某些TI代码中的某些宏时,我在GCC中遇到编译器错误,这些代码可以通过TI编译器进行编译.
有问题的宏是一些变体
#define CHIP_FSET(Reg,Field,Val) _CHIP_##Reg##_FSET(##Field,Val)
Run Code Online (Sandbox Code Playgroud)
它在代码中使用
CHIP_FSET(ST1_55, XF, CHIP_ST1_55_XF_OFF)
Run Code Online (Sandbox Code Playgroud)
当海湾合作委员会得到它所说的时候
错误:粘贴"("和"XF"不提供有效的预处理令牌
如果我删除Field前面的##,它会成功预处理.如果我正确理解代码,字段前面的##似乎无关紧要,因为它变成了一个带有两个参数的函数调用(或另一个宏调用).所以##是多余的,原来的替换将导致...... _ FSET(Field,Val)无论如何.
那我错过了什么?我在##预处理器指令上找到的所有内容都表示它只是将文本粘在一起.所以##在这种情况下从来没有做过任何事情.
我错过了什么?
为什么GCC会扼杀它,但TI编译器允许它?我猜这个答案就像"规范的模糊部分".
=========================
更新
我认为问题是因为有许多嵌套宏可能无法完全解析.编译器最终得到的结果是无效的,因此它会在处理它们的某个时刻吐出虚拟对象.
我设法通过填写丢失的宏来解决问题,并导致其他一些部分破坏.这就是我想平台和编译器之间移植代码的乐趣.
谢谢您的帮助.
我正在使用TI SensorTag,我希望它能够在我的手机不在范围内时通过蓝牙LE连接来存储数据.目前,传感器仅在设备处于无线范围内时才传输数据.
通过访问SensorTag上的固件,即使手机不在范围内,也可以使其存储数据,然后在设备可用时进行传输.我正在使用iPhone,使用他们的示例代码访问它.我也可以使用Android代码,如果有人认为它会更好.
是否可以告诉固件在本地记录此数据?如果是这样,需要通过蓝牙LE传输哪些命令?如果没有,是否可以修改固件以支持此功能?
作为第三方,是否有一种可行的方法可以正确解释蓝牙低功耗设备中没有已发布的GATT配置文件规范的数据?
BLE装置是一种体重秤,可支持体重,体重指数,体脂和水合程度.我的理解是,没有采用GATT身体尺度的配置文件,例如血压设备或心率监测器(https://developer.bluetooth.org/gatt/profiles/Pages/ProfilesHome.aspx).
使用以下工具:
我可以扫描,定位,连接和阅读规模上可用的GATT服务.以上所有工具都为我提供了相同的服务信息.在规模上发现了5项服务:
所有上述工具都能够从已知服务中读取,例如检索电池信息或设备名称.我的假设是具有自定义UUID的未知服务是提供比例数据的服务.
此服务具有5个未知特征,具有自定义UUID:
使用上面指定的工具从特征1,2和3中读取,每个工具都返回它自己的值,但该值永远不会改变.例如,读取特征1总是返回20个八位字节0x01-0x05-0x06-0x07-0x08和15个0x00个八位字节的值.特征1的后续读取始终返回该值.特征2读取总是返回20个八位字节0x02和19 0x00个八位字节的值.等等.
阅读特征5似乎不返回值,或者更常见于Android,发出配对请求.没有共同的配对代码(如0000或1234等)有效.
特征4似乎是实际传输比例数据的内容.使用上面的工具,我可以启用通知,应用程序检索13个八位字节.例如:
显然,所有这些值都以相同的八位组开头.然而,主要的问题是这些八位字节代表什么,它们如何转化为体重/体重/水合/体脂值,如果事实上它们根本就是这样.
该秤采用Ti CC2541芯片(http://www.ti.com/product/cc2541)构建.
使用Ti的SmartRF协议数据包嗅探器和CC2540 USB评估模块套件,我可以捕获iPhone 5S(iOS 7.1)和规模之间的数据包.这提供了一些额外的见解,但大多只是显示我已经使用其他工具观察到的内容,尽管它处于较低级别.数据包嗅探器提供的任何其他信息仍然会回到同一个问题:规模发送的这些八位字节集代表什么,它们如何转换为weight/bmi/etc?我已经使用了蓝牙核心规范文档,这有助于理解标准功能的八位字节意味着/做什么,但这无助于理解实际的规模数据.
我对蓝牙开发很新,这项练习基本上导致了技术的速成课程.任何帮助表示赞赏.
谢谢.
bluetooth texas-instruments bluetooth-lowenergy android-bluetooth ios-bluetooth
我正在为Jacinto6板开发自定义Android固件(dra7xx).默认情况下,该板是横向(800x480).
我需要开发固件的纵向版本,以便:
在刷新固件时,在恢复时,可以垂直处理电路板(480x800)
当在bootanimation(风景)和启动器(肖像)之间转换时,没有旋转伪像
我已经尝试将"PRODUCT_CHARACTERISTICS"设置为"phone"并将"SCREEN_ORIENTATION_PORTRAIT"硬编码到各种框架类(WindowManager,ActivityManagerService,PhoneWindowManager等)中
你对此有什么解决方案吗?
谢谢!
是否可以交叉编译MIPS的D源代码?
例如,我想编译一个D"Hello,world".将在基于TI AR7的设备上运行的程序,该设备具有MIPS32处理器,通常运行带有MontaVista补丁和uClibc的Linux 2.4.17内核(使用MIPS I通用目标; ELF 32位LSB可执行文件,MIPS,MIPS-I版本1 SYSV).
I'm trying to write two bytes (color values) to the VRAM of my TI-84 Plus CE-T calculator, which uses the Zilog eZ80 CPU. The VRAM starts at 0xD40000 and is 0x25800 bytes long. The calculator has a built in syscall called MemSet
, which fills a chunk of memory with one byte, but I want it to alternate between two different values and store these in memory. I tried using the following code:
#include "includes\ti84pce.inc"
.assume ADL=1
.org userMem-2
.db …
Run Code Online (Sandbox Code Playgroud)