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.

关于cc2541官方例程编译不通过,另外请教下自己设计了一个CC2541+其他传感器的板子,用和sensortag配套的苹果那软件可以收到有相同传感器的数据吗?

Other Parts Discussed in Thread: CC2541, TMP006, CC2540

我用软件打开官方下载的BLE-CC254x-1.4.0   打开里面的例子。\projects\ble\SimpleBLEPeripheral\CC2541DB编译不通过。请问这是为何。参考过http://www.deyisupport.com/question_answer/wireless_connectivity/f/45/t/18156.aspx这篇帖子。提示说吧7改成10.在编译还是有问题。求解答下

Building configuration: SimpleBLECentral - CC2541EM
Updating build tree...
Linking
Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0x8 more bytes needed. The problem occurred while processing the 
segment placement command "-Z(IDATA)ISTACK+_IDATA_STACK_SIZE#08-_IDATA_END", where at the moment of placement the available memory ranges 
were "IDATA:48-ff"
   Reserved ranges relevant to this placement:
   IDATA:8-1f           VREG
   IDATA:21-40          VREG
   IDATA:41-42          XSP
   IDATA:43-43          DATA_I
   IDATA:44-45          DATA_Z
   IDATA:46-47          IDATA_Z
   IDATA:48-ff          ISTACK
   BIT:0-7              BREG
   BIT:80-97            SFR_AN
   BIT:a0-af            SFR_AN
   BIT:b8-c7            SFR_AN
   BIT:e8-ef            SFR_AN
   BIT:f8-ff            SFR_AN
Error while running Linker
 
Total number of errors: 1
Total number of warnings: 0

按照你说的。吧ti_51ew_cc2540b.xcl里面的-7给出了-10.再编译还是没有通过。请问这是什么样的问题呢。我是想做一个CC2541.在这个平台上的IIC上面接了很多传感器。想通过蓝牙吧相关的数据与手机通信。硬件基本已经快要开板了。请问你觉得这方案应该可行吧。就和SENSORTAG那板子功能很类似。知识传感器多了些还有换了些。请问为何编译还是不通过呢。另外我还有一个问题。在APP 商店里面提供了一个SENSORTAG的软件。我想如果我自己设计的板子换了几种传感器。但是有一些相同的传感器。比如TMP006.mag3110.那用那个苹果的软件还能使用吗。是不是还是可以收到这些一样的传感器的数据。不同的当然就收不到了。?

  • 我想你一定是用的IAR V8.20以后的版本,在这个版本之后IAR不再需要NR_OF_VIRTUAL_REGISTERS,也就是这个问题中的+_IDATA_STACK_SIZE#08-_IDATA_END,IAR能够对其自动优化。具体解释:打开IAR软件,可以在release notes中找到highlights,linker configuration files

    看到如下信息

    其中

    • EW24413: Linker configuration files (with the filename extension .xcl) from version 8.20 or older contain:
      -Z(DATA)VREG+_NR_OF_VIRTUAL_REGISTERS=08-7F.
      In the 8.30.1 release this internal _NR_OF_VIRTUAL_REGISTERS symbol was deprecated. In the new version of these files, this changed to:
      -Z(DATA)VREG=08-7F.
      This change is now also applied to the Texas Instruments (Chipcon) linker configuration files.

    是引起这个问题的最终原因,你需要找到协议栈安装路径$PROJ_DIR$\..\..\common\cc2540\ti_51ew_cc2540b.xcl的这个文件,将-Z(DATA)VREG+_NR_OF_VIRTUAL_REGISTERS=08-7F改为-Z(DATA)VREG=08-7F