summaryrefslogtreecommitdiff
path: root/bsp/apollo2/libraries
diff options
context:
space:
mode:
authorlin <[email protected]>2017-12-04 18:52:02 +0800
committerlin <[email protected]>2017-12-04 18:52:02 +0800
commit2706bccbddafb6bbb019d301faebb9aa881af9f1 (patch)
tree07f3a25bc80c41c07b08a81e074b670c45cc28f3 /bsp/apollo2/libraries
parentc17ddf1430ee9c7d6cd91bebda5fa887b38bc391 (diff)
[BSP]Add more drivers and fix some problem
Diffstat (limited to 'bsp/apollo2/libraries')
-rw-r--r--bsp/apollo2/libraries/drivers/SConscript6
-rw-r--r--bsp/apollo2/libraries/drivers/hal/am_hal_i2c_bit_bang.c8
-rw-r--r--bsp/apollo2/libraries/drivers/hal/am_hal_iom.c18
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