platform_sdk.h File Reference
#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
#include "system_gr55xx.h"
#include "gr55xx_hal_def.h"
+ Include dependency graph for platform_sdk.h:

Go to the source code of this file.

Enumerations

enum  run_mode_t {
  XIP_64M = 0, XIP_48M, XIP_XO16M, XIP_24M,
  XIP_16M, XIP_32M, MIRROR_64M, MIRROR_48M,
  MIRROR_XO16M, MIRROR_24M, MIRROR_16M, MIRROR_32M
}
 system clock and run mode. More...
 
enum  sdk_clock_type_t { RNG_OSC_CLK = 0, RTC_OSC_CLK, RNG_OSC_CLK2 }
 sdk clock type. More...
 
enum  mem_power_t { MEM_POWER_FULL_MODE = 0, MEM_POWER_AUTO_MODE }
 memory power setting mode. More...
 

Functions

void platform_sdk_init (void)
 platform sdk init function. More...
 
void mem_pwr_mgmt_mode_set (mem_power_t mem_pwr_mode)
 Set the memory power management mode, which can be automatic mode or full power on mode. More...
 
void mem_pwr_mgmt_mode_set_from (uint32_t start_addr, uint32_t size)
 Control the memory power supply by specifying start address and length. More...
 
void system_lp_counter_set (uint8_t cnt_a, uint8_t cnt_b)
 update the counter A and counter B. More...
 
void ble_wakeup_osc_time_set (run_mode_t run_mode, uint16_t osc_us)
 Set Time to wakeup oscillator before BLE Activity. More...
 
uint16_t ble_wakeup_osc_time_get (run_mode_t run_mode)
 Get Time to wakeup oscillator before BLE Activity. More...
 
uint32_t nvds_get_start_addr (void)
 Get NVDS Start Address. More...
 
void ble_program_delay_set (run_mode_t run_mode, uint8_t hslot)
 Set BLE Program Delay. More...
 
void ble_sleep_algo_dur_set (run_mode_t run_mode, uint16_t dur_hus)
 Set BLE Sleep Algorithm Duration. More...
 
void ble_max_push_frame_time_set (run_mode_t run_mode, uint16_t max_push_hus)
 Set Maximum BLE Pushing Frame Time. More...
 
void sys_min_sleep_threshold_set (run_mode_t run_mode, uint32_t min_sleep_us)
 Set Minimum System Sleep Time. More...
 
void platform_clock_init (mcu_clock_type_t sys_clock, sdk_clock_type_t clock, uint16_t accuracy, uint16_t xo_offset)
 Platform low power clock init function. More...
 
void platform_clock_init_rng (mcu_clock_type_t sys_clock, sdk_clock_type_t clock, uint16_t accuracy, uint16_t xo_offset)
 Platform low power clock init function. More...
 
void platform_set_rtc_crystal_delay (uint16_t wait)
 Set RTC crystal oscillator stabilization time. More...
 
void platform_rng2_calibration_start (void)
 Start RNG2 OSC calibration. More...
 
void platform_rng2_calibration_stop (bool wait)
 Stop RNG2 OSC calibration. More...
 
bool platform_rng2_calibration_is_busy (void)
 Check whether RNG2 OSC calibration is on going. More...
 
uint32_t platform_rng2_calibration_get (bool wait_result, bool allow_cached)
 Get RNG2 OSC calibration result. More...
 
void platform_init (void)
 Platform init function. More...
 
void warm_boot_first (void)
 the first warm boot stage. More...
 
void warm_boot_second (void)
 the second warm boot stage. More...
 
void system_pmu_init (mcu_clock_type_t clock_type)
 PMU init function. More...
 
void system_pmu_deinit (void)
 PMU deinit function. More...
 
void warm_boot (void)
 Warm boot process. More...
 
void warm_boot_set_exflash_readid_delay (uint32_t delay_us)
 Set delay time between flash wakeup and read chip id in warm boot. More...
 
uint32_t warm_boot_get_exflash_readid_delay (void)
 Get delay time between flash wakeup and read chip id in warm boot. More...
 
void pmu_calibration_handler (void *p_arg)
 PMU calibration handler. More...
 
void lfrc32k_calibration (void)
 LFRC32K calibration. More...
 
void platform_init_push (void)
 protection platform timeout through watchdog. More...
 
void platform_init_pop (void)
 protection platform timeout through watchdog. More...
 
hal_status_t platform_flash_enable_quad (void)
 write flash QE More...
 
void pwr_mgmt_warm_boot (void)
 Power Management warm boot. More...
 

Detailed Description

Attention
Copyright (c) 2019 GOODIX

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of GOODIX nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file platform_sdk.h.