Smart Bluetooth Forum Discussions
Board will program correctly via USB but will not run from a coincell even when the SW2 and SW3 are set into the correct positions as per the WICED-Smart-QGS201 guide supplied with SDK2.0.1
Show Lessi would like to learn some more about the underlying runtime supporting BLE Smart applications -- the startup sequence, execution context, the tasking model, etc.... i realize this is a rather broad topic; but at least a general understanding will help me (and hopefully) others when developing/debugging their application code....
let's start with startup sequence -- and the APPLICATION_INIT function in particular.... from what i can tell, this is entered immediately after the basic C runtime has been established by spar_setup.c followed by sparinit.c.... and then from here, there is typically a single call to bleapp_set_cfg() which receives the application's "create" function; the latter is where the real use of the underlying libraries begins....
this then leads to a flurry of questions about the "execution context" at each of these points:
- when are hardware interrupts actually enabled???
- when does the watchdog timer become enabled; and how long is its interval???
- when should i initialize my own periperhal HW, ideally *before* interrupts start coming in???
- is the application "create" function executing within a special task context???
- what happens if the "create" function doesn't return -- either for a very long or forever???
- are functions enqueued by bleappevt_serialize() executed first-come, first-served???
- tell me more about bleappevt_serialize() -- it's return value and the return value of the scheduled fxn???
- are bleappevt_serialize() functions subject to the same constraints as "create"; do they run in the same context???
- can interrupt handlers interrupt other interrupt handlers; and can tasks preempt one another???
- the API has numerous callbacks -- from gatt attributes being ready to UART interrupts; what context do these execute in???
- do any of the callbacks actually execute in interrupt context; and if so, what is the interrupt latency???
- similarly, what is the latency from scheduling (my own) function via bleappevt_serialize()
- what are the various "real-time" constraints imposed by the BLE stack, which my app should respect???
so sorry for being so pedantic, but the application code we're trying to port onto the BCM92073x requires us to know this sort of information....
Show LessWe have been running into problems associated with code size and wondered if we could get clarification on the maximum memory available for code and data?
I saw on another forum post it mentioned that the maximum code size is 30K. Does that pertain to the "Total RAM footprint" line in the buld console? If so it's not quite right because we found that our system stopped working completely after our total ram footprint exceeded 27364. This makes me nervous because unless I understand the actual limit I might see less predictable failures!
So my questions are:
(1) What is the maximum code size and how can I tell whether I am reaching it?
(2) What is the maximum stack size?
(3) What is the amount of space available for global and static variables?
Are there any built in functions of the stack that can be turned off to save space, for example if I disable the battery status profile does that cut down on the footprint?
Show LessHi,
1. What is the native support NFC in BCM20737?
2. It seems that we need to add the NFC Reader IC if we want to enable the NFC feature of BCM20737.
Do you have any sample code about NFC
Thanks
ChienYi
Show LessHi,
I'm going to use several GPIO pin as Data Input with interrupt by register handler in following function.
gpio_registerForInterrupt(interrupt_handler_mask, application_gpio_interrupt_handler);
Then, in the application_gpio_interrupt_handler(), as the document example is:
void application_gpio_interrupt_handler(void* parameter)
Question 1:
Can the "parameter" be used to identify the pin which trigger an interrupt? and identify that is triggered at falling edge or rising edge?
Or is there any API to identify it? I found gpio_getPortInterruptStatus but not sure this is.
Question 2:
Do the handler need to clear interrupt by gpio_clearPortInterruptStatus before exit the handler?
Thank you!
Show LessHi,
The BCM20736S should integrate the antenna.
What is the purpose of P33's alternate functions? (External T/R switch control (~tx_pd))
Thanks
ChienYi
Show LessHi,
For BCM20736, what kind of BT certifications are needed if we want to get BT logo ?
If we use BCM20736S, are the certifications the same with BCM20736 ?
Thanks.
Show LessHi,
After checking the block diagram of MMP20732-DS100-R.pdf, BCM has integrated the PA in the chipset.
And using the T/R switch to separate the T/R path.
Could we design a circuit as follows? I think that it must modify the BCM source code to sync the GPIO status with internal T/R switch.
I just want to check if it is possible to increase the TX power in the BCM20736(SOC, not SiP),
Thanks
I see with the eval board that I can be "connected" to the iPhone LightBlue app but I never had to do any sort of "pairing" between devices as one would do say with an automobile for instance
What is the difference between being connected versus paired?
Show Less