(B80/B80B)Added the attribute_ram_code_sec_noinline attribute to the following interfaces: rf_set_channel, rf_rx_buffer_set, rf_tx_pkt, and rf_set_power_level_index.
This version of SDK supports TLSR8208 (B80) (A1/A4), TLSR8208 B version (B80B) (A0/A1), B85, B87 chips.
The default configuration of LEDs and KEYs match the following hardware revisions:
B80 C1T261A30_V1_1
B80B C1T321A30_V1_0
B85 C1T139A30_V1_2
B87 C1T197A30_V1_2
BREAKING CHANGES
flash
(B80/B80B/B85/B87):In order to implement the bin firmware protection in driver sdk, we delete the flash_lock/flash_unlock swtich implementation scheme maintained by flash_demo, and for the sake of code simplicity and easy maintenance, we add the flash hal layer to implement the scheme with structure, add hal_flash.c/.h, common.c/.h and flash_comomon.c/.h file of each chip driver, and add the bin firmware protection function in the main of each demo.
sys
(B80/B80B/B87)Change the xtal parameter to the cap parameter in the cpu_wakeup_init function. This parameter is used to configure whether the internal capacitor needs to be disabled. If the development board has already welded the capacitor on the outside, then the internal capacitor needs to be turned off; If the development board does not weld the capacitor on the outside, then the internal capacitor needs to be opened. If the corresponding operation is not possible, there may be two capacitors in parallel, or no capacitors. This has a great impact on the starting time and frequency of crystal vibration, which may cause reset and crash.
irq
(B80/B80B/B85/B87)Rename function irq_clr_src2 to irq_clr_sel_src and change the related comment.
(B80B) Solved the problem of high current in suspend mode and deep mode in the A0 version of the chip due to the damage of the transistor inside the chip caused by the pull-up abnormality of the USB DP pin (the A1 version of the chip does not have this problem).(http://192.168.48.36/src/driver/telink_b85m_platform_src/merge_requests/550)
(B87)add comments to support two-supply flash GD25LD10E(Comparison has been made between the same mid flash GD25LD10C that the driver already exists, and it is confirmed that the flash driver does not need to be updated).
cstartup.S
(B80/B80B/B85)Add the function that sets the watchdog capture_tick and starts it in cstartup.S.
pwm
(B80/B80B/B85/B87)Add pwm_multi_start() interface to support pwm enabling multiple channels simultaneously.
usb
(B80/B80B/B85/B87)Add swire_through_usb_dp_en() to enable swire communication via USB DP IO and swire_through_usb_dp_dis() to disable swire communication via USB.
spi
(B80/B80B)Add spi dma full duplex interface: spi_master_write_read_dma_full_duplex.
flash
(B80): add new flash ZG25WD40B(Untested)/GD25WD10EGIG.
(B80B): add new flash GD25WD10EGIG.
(B87): add new flash TH25Q16UB.
calibration
(B80): Add operation to flash ZG25WD40B to increase VDD_F to 2.25V maximum.
Refactoring
watchdog
(B80/B80B/B85/B87) Fixed comment error in the capture_tick formula of the wd_set_interval_ms() function.
pm
(B80/B80B/B85/B87)Update the early wakeup time of SUSPEND sleep mode which impacted by add pm_wait_xtal_ready(), meanwhile adjusted the nop number of pm_wait_xtal_ready() to make sure the delay time is 40us.
USB_Demo
(B80/B80B/B85/B87) Call interface irq_clr_sel_src() to clear the USB reset flag bit.
(B80/B80B/B85/B87) Call interface irq_get_src() to get the interrupt status.
spi
(B80/B80B)Remove spi dma interface (spi_master_write_dma/ spi_master_write_read_dma) duplicate assignment operation to reg_dma_rdy0_h register (reg_dma_rdy0_h|= FLD_DMA_READY_9;) and SPI_MODE_ WRITE_AND_READ comment modification.
ALL_Demo
(B80/B80B/B85/B87)Added common.c and common.h, put the definition of LED and KEY in common.h, defined platform_init interface in common.c, put the public initialization content in platform_init interface, and added the initialization content to set up pull-up for sws to prevent probabilistic crash.
(B80/B80B/B85/B87)In order to prevent gpio_set_func related functions from operating on a different set of GPIOs, change all demos where the function parameter is the logical or of multiple LEDs to a single LED parameter.
(B80/B80B/B85/B87)To clear up the warnings caused by warning flag -Wstrict-prototypes, the following demo files has been modified by adding a void parameter to the function without parameters: