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.

LAUNCHXL-CC1310: two problems about cc1310 in 15.4 stack

Part Number: LAUNCHXL-CC1310
Other Parts Discussed in Thread: CC1310

HI,

I have two problems about cc1310 in 15.4g stack.

1、 After downloading program successfully, I reset  cc1310  for the first time by calling function HAL_SYSTEM_RESET() ,I find cpu powes down,but it can't restart. I must restart it by hardware reset ,or power up again. after restarting  by hardware reset ,or power up again, I reset cc1310  by calling function HAL_SYSTEM_RESET() many times. it can restart and never occurs this situation.I try many times,i find that every time download program successfully, i reset cc1310 for the first time by calling function HAL_SYSTEM_RESET() ,this situation occurs.

why?how to deal with this situation?

2、I want to send messages from the coordinator to its nodes by calling sendMsg()  in  uart receive callback funtion. but I find the message can't be sent successfully, then I put it in Collector_process(); it does work. Why can't send message  by calling sendMsg() in uart receive callback function? 

Thanks!

  • Hi,
    Anybody have comments? Especially for question 2.

    Vivian
  • 2:
    Cause the function prototype of the sendMsg is:
    static bool sendMsg(Smsgs_cmdIds_t type, uint16_t dstShortAddr, bool rxOnIdle, uint16_t len, uint8_t *pData)
    * @param type - message type
    * @param dstShortAddr - destination short address
    * @param rxOnIdle - true if not a sleepy device
    * @param len - length of payload
    * @param pData - pointer to the buffer
    You should make sure these five parameters are correct when you send a massage.
  • HI,summery
    That's all right,because I can send message in main cycle (Collector_process();),but I can't do it in uart receive callback funtion with same parameters
    thanks!
  • To answer you questions:

    1) Try disabling bootloader actions by removing the following predefined symbols:
    SET_CCFG_BL_CONFIG_BL_LEVEL=0x00
    SET_CCFG_BL_CONFIG_BL_ENABLE=0xC5
    SET_CCFG_BL_CONFIG_BL_PIN_NUMBER=0x0D
    SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE=0xC5

    2) Could you provide steps to reproduce this issue? A possible solution is to create an event for the message you want to send. This way you can set and event and post the apps semaphore to wake up the collector task. Then it will execute in the collector_process context.

    ~Brocklobsta
  • HI,Brocklobsta
    1) I have removing these symbols
    2)when the coordinator recieves datas from UART,the coodiantor calls uart recieve callback function ,then I want to send these data to nodes by calling sendMsg() in uart recieve callback function, it can't work.
    thanks!
  • You shouldn't call sendMsg from a uart callback context. Instead, set a flag and wake up the application to send the message. An example of this can be found in processReadingTimeoutCallback(). This event then gets handled in Sensor_process. In your case the event would be the UART callback.