diff options
| author | lin <[email protected]> | 2017-12-04 18:52:02 +0800 |
|---|---|---|
| committer | lin <[email protected]> | 2017-12-04 18:52:02 +0800 |
| commit | 2706bccbddafb6bbb019d301faebb9aa881af9f1 (patch) | |
| tree | 07f3a25bc80c41c07b08a81e074b670c45cc28f3 /bsp/apollo2/libraries | |
| parent | c17ddf1430ee9c7d6cd91bebda5fa887b38bc391 (diff) | |
[BSP]Add more drivers and fix some problem
Diffstat (limited to 'bsp/apollo2/libraries')
| -rw-r--r-- | bsp/apollo2/libraries/drivers/SConscript | 6 | ||||
| -rw-r--r-- | bsp/apollo2/libraries/drivers/hal/am_hal_i2c_bit_bang.c | 8 | ||||
| -rw-r--r-- | bsp/apollo2/libraries/drivers/hal/am_hal_iom.c | 18 |
3 files changed, 27 insertions, 5 deletions
diff --git a/bsp/apollo2/libraries/drivers/SConscript b/bsp/apollo2/libraries/drivers/SConscript index c190a8d8be..6e460fbc5f 100644 --- a/bsp/apollo2/libraries/drivers/SConscript +++ b/bsp/apollo2/libraries/drivers/SConscript @@ -11,15 +11,21 @@ hal/am_hal_debug.c hal/am_hal_cachectrl.c hal/am_hal_pwrctrl.c hal/am_hal_sysctrl.c +hal/am_hal_reset.c hal/am_hal_stimer.c hal/am_hal_ctimer.c hal/am_hal_rtc.c hal/am_hal_interrupt.c hal/am_hal_queue.c +hal/am_hal_iom.c +hal/am_hal_ios.c hal/am_hal_vcomp.c hal/am_hal_flash.c hal/am_hal_gpio.c hal/am_hal_uart.c +hal/am_hal_adc.c +hal/am_hal_pdm.c +hal/am_hal_i2c_bit_bang.c """) path = [cwd] diff --git a/bsp/apollo2/libraries/drivers/hal/am_hal_i2c_bit_bang.c b/bsp/apollo2/libraries/drivers/hal/am_hal_i2c_bit_bang.c index 603dd8c4ec..18e61b98f6 100644 --- a/bsp/apollo2/libraries/drivers/hal/am_hal_i2c_bit_bang.c +++ b/bsp/apollo2/libraries/drivers/hal/am_hal_i2c_bit_bang.c @@ -49,7 +49,7 @@ #include <stdbool.h> #include "am_mcu_apollo.h" -#include "am_util.h" +//#include "am_util.h" #include "am_hal_i2c_bit_bang.h" // Max number of clock cycles to wait for clock stretch @@ -133,7 +133,7 @@ static am_hal_i2c_bit_bang_priv_t am_hal_i2c_bit_bang_priv; // Wait for any stretched clock to go high // If it times out - return failure // -static inline bool +static bool i2c_pull_and_wait_scl_hi(void) { // Maximum time to wait for clock stretching @@ -284,7 +284,7 @@ am_hal_i2c_bit_bang_init(uint32_t sck_gpio_number, //! returns the byte received // //***************************************************************************** -static inline am_hal_i2c_bit_bang_enum_t +static am_hal_i2c_bit_bang_enum_t i2c_receive_byte(uint8_t *pRxByte, bool bNack) { int i; @@ -389,7 +389,7 @@ i2c_receive_byte(uint8_t *pRxByte, bool bNack) //! } // //***************************************************************************** -static inline am_hal_i2c_bit_bang_enum_t +static am_hal_i2c_bit_bang_enum_t i2c_send_byte(uint8_t one_byte) { int i; diff --git a/bsp/apollo2/libraries/drivers/hal/am_hal_iom.c b/bsp/apollo2/libraries/drivers/hal/am_hal_iom.c index 8b85c32b6a..95653b9fa5 100644 --- a/bsp/apollo2/libraries/drivers/hal/am_hal_iom.c +++ b/bsp/apollo2/libraries/drivers/hal/am_hal_iom.c @@ -49,7 +49,7 @@ #include <stdint.h> #include <stdbool.h> #include "am_mcu_apollo.h" -#include "am_util_delay.h" +//#include "am_util_delay.h" #ifdef __IAR_SYSTEMS_ICC__ #define AM_INSTR_CLZ(n) __CLZ(n) @@ -62,6 +62,22 @@ #define AM_ASSERT_INVALID_THRESHOLD (1) #endif +uint32_t am_util_wait_status_change(uint32_t ui32Iterations, uint32_t ui32Address, uint32_t ui32Mask, uint32_t ui32Value) +{ + int i; + for (i = 0; i < ui32Iterations; i++) + { + // Check the status + if (((*(uint32_t *)ui32Address) & ui32Mask) == ui32Value) + { + return 1; + } + // Call the BOOTROM cycle delay function to get about 1 usec @ 48MHz + am_hal_flash_delay(16); + } + return 0; +} + //***************************************************************************** // // Forcing optimizations |
