360e319959
RF and system timer interrupt are used for ble. tlsr82_flash.c: 1. BLE will loss packets during flash operation beacause the interrupt is disabled and the operation take too long (especially erasing, about 100ms), so allow RF and system timer interrupt during flash operation; 2. Add sched_lock()/sched_unlock() to avoid the task switch in ble and system timer interrupt; flash_boot_ble.ld: 3. Because of 1, the code executes in RF and system timer interrupt must be in ram to avoid bus error. The sem_post() will be called and const variable g_tasklisttable will be accessed in RF and system timer interrupt handler; 4. To improve the performance, copy some frequently called function to ram as well, such as: sem_take(), sched_lock(), sched_unlock(), some lib functions, some zephyr ble functions and some tinycrypt functions; 5. The RF and system timer interrupt handler will call some libgcc functions, so copy all the libgcc functions to ram exclude _divdi3.o, _udivdi3.o and _umoddi3.o; tlsr82_serial.c 6. Make up_putc() be thread safe, add enter/leave_critical_section() in function uart_send_byte(); tc32_doirq.c 7. Increase the RF and system timer interrupt response priority; Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com> |
||
---|---|---|
.. | ||
flash_boot_ble.ld | ||
flash_boot.ld | ||
Make.defs |