35 #ifndef __HAL_PLATFORM_H__ 36 #define __HAL_PLATFORM_H__ 39 #include "hal_define.h" 40 #include "hal_feature_config.h" 51 #ifdef HAL_ADC_MODULE_ENABLED 52 #define HAL_ADC_FEATURE_NO_NEED_PINMUX 55 #ifdef HAL_I2C_MASTER_MODULE_ENABLED 56 #define HAL_I2C_MASTER_FEATURE_SEND_TO_RECEIVE 59 #ifdef HAL_PWM_MODULE_ENABLED 60 #define HAL_PWM_FEATURE_SINGLE_SOURCE_CLOCK 63 #ifdef HAL_EINT_MODULE_ENABLED 64 #define HAL_EINT_FEATURE_MASK 65 #define HAL_EINT_FEATURE_SW_TRIGGER_EINT 68 #ifdef HAL_GPIO_MODULE_ENABLED 69 #define HAL_GPIO_FEATURE_SET_DRIVING 72 #ifdef HAL_RTC_MODULE_ENABLED 73 #define HAL_RTC_FEATURE_SLEEP 76 #ifdef HAL_UART_MODULE_ENABLED 77 #define HAL_UART_FEATURE_VFIFO_DMA_TIMEOUT 80 #ifdef HAL_I2S_MODULE_ENABLED 81 #define HAL_I2S_EXTENDED 82 #define HAL_I2S_SUPPORT_VFIFO 85 #ifdef HAL_GDMA_MODULE_ENABLED 86 #define HAL_GDMA_WRAP_FLASH_ADDRESS_TO_VIRTUAL_ADDRESS 90 #ifdef HAL_UART_MODULE_ENABLED 126 #ifdef HAL_I2C_MASTER_MODULE_ENABLED 191 #define HAL_I2C_MAXIMUM_POLLING_TRANSACTION_SIZE 8 195 #define HAL_I2C_MAXIMUM_DMA_TRANSACTION_SIZE 65535 231 #ifdef HAL_GPIO_MODULE_ENABLED 293 #ifdef HAL_ADC_MODULE_ENABLED 329 #ifdef HAL_I2S_MODULE_ENABLED 420 #ifdef HAL_SPI_MASTER_MODULE_ENABLED 433 #define HAL_SPI_MAXIMUM_POLLING_TRANSACTION_SIZE 0xFFFFFFFF 437 #define HAL_SPI_MASTER_CLOCK_MIN_FREQUENCY 30000 441 #define HAL_SPI_MASTER_CLOCK_MAX_FREQUENCY 60000000 502 #ifdef HAL_SPI_SLAVE_MODULE_ENABLED 548 #ifdef HAL_RTC_MODULE_ENABLED 564 #define HAL_RTC_BACKUP_BYTE_NUM_MAX (144) 591 #ifdef HAL_EINT_MODULE_ENABLED 606 HAL_EINT_NUMBER_0 = 0,
607 HAL_EINT_NUMBER_1 = 1,
608 HAL_EINT_NUMBER_2 = 2,
609 HAL_EINT_NUMBER_3 = 3,
610 HAL_EINT_NUMBER_4 = 4,
611 HAL_EINT_NUMBER_5 = 5,
612 HAL_EINT_NUMBER_6 = 6,
613 HAL_EINT_NUMBER_19 = 19,
614 HAL_EINT_NUMBER_20 = 20,
615 HAL_EINT_NUMBER_21 = 21,
616 HAL_EINT_NUMBER_22 = 22,
617 HAL_WIC_NUMBER_0 = 32,
618 HAL_WIC_NUMBER_1 = 33,
619 HAL_WIC_NUMBER_2 = 34,
620 HAL_WIC_NUMBER_3 = 35,
621 HAL_WIC_NUMBER_4 = 36,
622 HAL_WIC_NUMBER_5 = 37,
623 HAL_WIC_NUMBER_6 = 38,
624 HAL_WIC_NUMBER_7 = 39,
625 HAL_WIC_NUMBER_8 = 40,
626 HAL_WIC_NUMBER_9 = 41,
627 HAL_WIC_NUMBER_10 = 42,
628 HAL_WIC_NUMBER_11 = 43,
643 #ifdef HAL_GPT_MODULE_ENABLED 678 #define HAL_GPT_MAXIMUM_MS_TIMER_TIME (130150523) 691 #ifdef HAL_FLASH_MODULE_ENABLED 709 #define HAL_FLASH_BASE_ADDRESS (0x08000000) 718 #ifdef HAL_GDMA_MODULE_ENABLED 741 #ifdef HAL_GDMA_WRAP_FLASH_ADDRESS_TO_VIRTUAL_ADDRESS 746 #define HAL_GDMA_WRAP_FLASH_ADDRESS_OFFSET (28) 749 #define HAL_GDMA_WRAP_FLASH_ADDRESS_HIGH_BYTE_MASK (0xfUL<<HAL_GDMA_WRAP_FLASH_ADDRESS_OFFSET) 752 #define HAL_GDMA_WRAP_FLASH_ADDRESS_MASK (0x1UL<<HAL_GDMA_WRAP_FLASH_ADDRESS_OFFSET) 755 #define HAL_GDMA_WRAP_FLASH_VIRTUAL_ADDRESS_MASK (0x3UL<<HAL_GDMA_WRAP_FLASH_ADDRESS_OFFSET) 768 #ifdef HAL_PWM_MODULE_ENABLED 837 #ifdef HAL_GPC_MODULE_ENABLED 866 #ifdef HAL_SLEEP_MANAGER_ENABLED 893 #ifdef HAL_WDT_MODULE_ENABLED 908 #define WDT_RESTART_ADDRESS (0x83080038) 909 #define WDT_RESTART_KEY (0x1971) hal_spi_master_clock_polarity_t
SPI master clock polarity definition.
Definition: hal_platform.h:473
pwm max channel <invalid>
Definition: hal_platform.h:810
64 bits per frame.
Definition: hal_platform.h:379
pwm channel21
Definition: hal_platform.h:791
Clock polarity is 0.
Definition: hal_platform.h:474
16000Hz
Definition: hal_platform.h:363
pwm channel18
Definition: hal_platform.h:788
pwm channel32
Definition: hal_platform.h:802
Enable the data swapping.
Definition: hal_platform.h:399
hal_i2s_sample_rate_t
I2S sample rate definition.
Definition: hal_platform.h:360
pwm channel20
Definition: hal_platform.h:790
pwm channel4
Definition: hal_platform.h:786
hal_gpt_clock_source_t
GPT clock source.
Definition: hal_platform.h:666
gdma channel 0
Definition: hal_platform.h:732
uint8_t rtc_year
Years - [0,99].
Definition: hal_platform.h:578
GPIO pin5.
Definition: hal_platform.h:255
GPIO pin33.
Definition: hal_platform.h:268
GPIO pin1.
Definition: hal_platform.h:251
32000Hz
Definition: hal_platform.h:365
ADC channel 2.
Definition: hal_platform.h:311
1 tick = 1/32768 second
Definition: hal_platform.h:667
hal_sleep_mode_t
Sleep modes.
Definition: hal_platform.h:879
hal_i2s_sample_width_t
I2S sample widths.
Definition: hal_platform.h:370
GPT port1: User defined.
Definition: hal_platform.h:659
hal_spi_slave_clock_polarity_t
SPI slave clock polarity definition.
Definition: hal_platform.h:524
GPIO pin57.
Definition: hal_platform.h:276
uint8_t rtc_day
Day of the month - [1,31].
Definition: hal_platform.h:575
Actual sampling rate of the I2S RX is half of the original sampling rate.
Definition: hal_platform.h:393
GPIO pin24.
Definition: hal_platform.h:259
GPIO pin58.
Definition: hal_platform.h:277
uint8_t rtc_hour
Hours after midnight - [0,23].
Definition: hal_platform.h:574
GPT port0: Used for tickless timer.
Definition: hal_platform.h:658
gpc port0
Definition: hal_platform.h:848
12000Hz
Definition: hal_platform.h:362
hal_eint_number_t
eint pin number
Definition: hal_platform.h:605
1 tick = 1/systemclock second.
Definition: hal_platform.h:672
hal_i2s_word_select_inverse_t
Enable or disable word select clock inverting of the I2S link.
Definition: hal_platform.h:403
hal_pwm_source_clock_t
pwm clock source seletion
Definition: hal_platform.h:814
legacy sleep state
Definition: hal_platform.h:883
uint8_t rtc_week
Days in a week - [0,6].
Definition: hal_platform.h:577
i2s external tdm mode<invalid>
Definition: hal_platform.h:348
uint8_t rtc_mon
Months - [1,12].
Definition: hal_platform.h:576
no sleep
Definition: hal_platform.h:880
uint8_t rtc_min
Minutes after the hour - [0,59].
Definition: hal_platform.h:573
Both send and receive data transfer LSB first.
Definition: hal_platform.h:488
GPIO pin39.
Definition: hal_platform.h:274
GPIO pin31.
Definition: hal_platform.h:266
GPIO pin28.
Definition: hal_platform.h:263
gdma channel 1
Definition: hal_platform.h:733
GPIO pin max number<invalid>
Definition: hal_platform.h:280
hal_spi_master_clock_phase_t
SPI master clock format definition.
Definition: hal_platform.h:480
spi slave device connect to spi master cs0 pin
Definition: hal_platform.h:467
Enable the word select clock inverting.
Definition: hal_platform.h:405
ADC channel 1.
Definition: hal_platform.h:310
uart port0
Definition: hal_platform.h:110
GPIO pin2.
Definition: hal_platform.h:252
hal_spi_master_slave_port_t
selection of spi slave device connected to which cs pin of spi master
Definition: hal_platform.h:466
GPIO pin29.
Definition: hal_platform.h:264
for support range detection
Definition: hal_platform.h:884
pwm channel1
Definition: hal_platform.h:783
GPIO pin36.
Definition: hal_platform.h:271
Actual sampling rate of the I2S RX = sampling rate.
Definition: hal_platform.h:392
ADC channel 0.
Definition: hal_platform.h:309
Clock polarity is 1.
Definition: hal_platform.h:526
hal_gdma_channel_t
gdma channel
Definition: hal_platform.h:731
hal_i2s_tx_mode_t
Enable or disable right channel of the I2S TX to send the same data as on the left channel of the I2S...
Definition: hal_platform.h:384
pwm channel23
Definition: hal_platform.h:793
pwm clock srouce: External 20MHz clock
Definition: hal_platform.h:817
GPIO pin27.
Definition: hal_platform.h:262
pwm channel34
Definition: hal_platform.h:804
hal_i2s_event_t
I2S event.
Definition: hal_platform.h:354
Clock format is 0.
Definition: hal_platform.h:481
gdma max channel <invalid>
Definition: hal_platform.h:734
Both send and receive data transfer MSB first.
Definition: hal_platform.h:489
pwm channel33
Definition: hal_platform.h:803
spi slave port 0
Definition: hal_platform.h:519
Disable the word select clock inverting.
Definition: hal_platform.h:404
pwm channel0
Definition: hal_platform.h:782
pwm channel26
Definition: hal_platform.h:796
GPIO pin59.
Definition: hal_platform.h:278
hal_spi_slave_clock_phase_t
SPI slave clock format definition.
Definition: hal_platform.h:531
wfi sleep state
Definition: hal_platform.h:882
pwm channel36
Definition: hal_platform.h:806
pwm channel31
Definition: hal_platform.h:801
I2S sample width is 16bit.
Definition: hal_platform.h:372
spi master max port number<invalid>
Definition: hal_platform.h:461
uint8_t rtc_sec
Seconds after minutes - [0,59].
Definition: hal_platform.h:572
Keep data to its channel.
Definition: hal_platform.h:385
hal_spi_master_bit_order_t
SPI master transaction bit order definition.
Definition: hal_platform.h:487
pwm clock source: Embedded 32KHz clock
Definition: hal_platform.h:815
GPIO pin35.
Definition: hal_platform.h:270
pwm channel25
Definition: hal_platform.h:795
idle state
Definition: hal_platform.h:881
I2S sample width is 24bit.
Definition: hal_platform.h:373
hal_adc_channel_t
adc channel
Definition: hal_platform.h:308
hal_gpio_pin_t
This enum define the gpio port.
Definition: hal_platform.h:249
GPT port4: Use to set a microsecond delay and get microsecond free count.
Definition: hal_platform.h:661
ADC channel 3.
Definition: hal_platform.h:312
Right channel of the TX, sends the same data as the left.
Definition: hal_platform.h:386
This value means notify user the RX data is ready.
Definition: hal_platform.h:356
RTC time structure definition.
Definition: hal_platform.h:571
hal_spi_slave_port_t
This enum defines the SPI slave port.
Definition: hal_platform.h:518
i2c master 0.
Definition: hal_platform.h:215
spi slave max port number<invalid>
Definition: hal_platform.h:520
spi master max cs pin number<invalid>
Definition: hal_platform.h:469
pwm channel24
Definition: hal_platform.h:794
spi master port 0
Definition: hal_platform.h:460
24000Hz
Definition: hal_platform.h:364
GPIO pin34.
Definition: hal_platform.h:269
hal_i2s_rx_down_rate_t
Enable or disable twice the downsampling rate mode in the I2S RX link.
Definition: hal_platform.h:391
pwm channel3
Definition: hal_platform.h:785
Clock polarity is 1.
Definition: hal_platform.h:475
GPIO pin37.
Definition: hal_platform.h:272
pwm clock srouce: Embedded 2MHz clock
Definition: hal_platform.h:816
Clock format is 0.
Definition: hal_platform.h:532
GPIO pin32.
Definition: hal_platform.h:267
GPIO pin4.
Definition: hal_platform.h:254
1 tick = 1 micro second, when using this clock source, please do not use hal_gpt_get_free_run_count()...
Definition: hal_platform.h:669
ADC max channel <invalid>
Definition: hal_platform.h:313
pwm channel28
Definition: hal_platform.h:798
GPIO pin26.
Definition: hal_platform.h:261
pwm channel38
Definition: hal_platform.h:808
hal_i2s_lr_swap_t
Enable or disable data swapping between right and left channels of the I2S link.
Definition: hal_platform.h:397
GPIO pin7.
Definition: hal_platform.h:257
gpc max port
Definition: hal_platform.h:849
Clock polarity is 0.
Definition: hal_platform.h:525
8000Hz
Definition: hal_platform.h:361
hal_gpc_port_t
gpc port
Definition: hal_platform.h:847
pwm channel22
Definition: hal_platform.h:792
i2c master 1.
Definition: hal_platform.h:216
32 bits per frame.
Definition: hal_platform.h:378
hal_spi_master_port_t
This enum defines the SPI master port.
Definition: hal_platform.h:459
pwm channel29
Definition: hal_platform.h:799
GPIO pin30.
Definition: hal_platform.h:265
hal_i2s_frame_sync_width_t
Number of bits per frame sync(FS).
Definition: hal_platform.h:377
GPIO pin60.
Definition: hal_platform.h:279
GPIO pin6.
Definition: hal_platform.h:256
i2s external mode
Definition: hal_platform.h:347
pwm max clock <invalid>
Definition: hal_platform.h:821
pwm clock srouce: External 26MHz clock
Definition: hal_platform.h:818
pwm channel2
Definition: hal_platform.h:784
pwm clock srouce: External 40MHz clock
Definition: hal_platform.h:819
GPIO pin38.
Definition: hal_platform.h:273
GPIO pin25.
Definition: hal_platform.h:260
pwm clock srouce: External 52MHz clock
Definition: hal_platform.h:820
GPIO pin3.
Definition: hal_platform.h:253
hal_i2c_port_t
This enum define the i2c port.
Definition: hal_platform.h:214
48000Hz
Definition: hal_platform.h:366
pwm channel5
Definition: hal_platform.h:787
pwm channel39
Definition: hal_platform.h:809
i2s internal mode<invalid>
Definition: hal_platform.h:349
pwm channel19
Definition: hal_platform.h:789
Disable the data swapping.
Definition: hal_platform.h:398
i2s internal loopback mode
Definition: hal_platform.h:350
GPT max port <invalid>
Definition: hal_platform.h:662
hal_gpt_port_t
GPT port.
Definition: hal_platform.h:657
pwm channel27
Definition: hal_platform.h:797
hal_uart_port_t
UART port index We have total 2 UART ports.
Definition: hal_platform.h:109
uart port1
Definition: hal_platform.h:111
pwm channel37
Definition: hal_platform.h:807
pwm channel35
Definition: hal_platform.h:805
spi slave device connect to spi master cs1 pin
Definition: hal_platform.h:468
128 bits per frame.
Definition: hal_platform.h:380
Clock format is 1.
Definition: hal_platform.h:482
Clock format is 1.
Definition: hal_platform.h:533
pwm channel30
Definition: hal_platform.h:800
max i2c master number, <invalid>
Definition: hal_platform.h:217
hal_pwm_channel_t
pwm channel
Definition: hal_platform.h:781
This value means request user to fill data.
Definition: hal_platform.h:355
GPT port2: Use to set a millisecond delay and get 1/32Khz free count.
Definition: hal_platform.h:660
hal_i2s_initial_type_t
This enum defines initial type of I2S.
Definition: hal_platform.h:346
GPIO pin0.
Definition: hal_platform.h:250
I2S sample width is 8bit.
Definition: hal_platform.h:371