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.

CC254x CPU activity

Other Parts Discussed in Thread: CC2541

My CC2541 application uses a 1 ms periodic event.   Most of the time, it is taken and the application checks for certain sensor status, etc. and creates notifications.   In most cases, the data is sent out and properly received.    When a notification is not "accepted", usually due to MSG_BUFFER_NOT_AVAIL, I queue up the notification for later, when there is "room" to send it.

I have noticed that one particular sensor creates a lot of data and the periodic events stop for a while.     I instrumented a logic analyzer on the SPI bus that is used to communicate with the system and I see the perioidic SPI communication stop for as much as 4 ms.    (Every periodic event, the SPI looks at a sensor.)   Since all of the processes other than mine are BLE related, and mine only gets activated via the periodic event, I have to assume that BLE is using the CPU to service the radio, etc.     Is there any way to tell what is consuming the CPU, or how to insure that the periodic event is really periodic (and not sporadic!)?

Thanks!

  • I'm attempting to send as much data as possible using notifications via GATT_Notification. This has been almost too successful!
    Evidently, the processor is so busy sending notifications that it doesn't let other processes get access to cycles...
    So, is there a way determine the number of notifications to send (per time unit?) such that I always get my periodic event?
    Is the amount of processing per notification "send" documented anywhere? Is there a mechanism or API call to know how many notifications are queued (other than trying to send another and getting MSG_BUFFER_NOT_AVAIL)? I want to get my data transmitted, but not at the expense of starving every other process...
    Thanks!