diff options
Diffstat (limited to 'source/application')
10 files changed, 61 insertions, 52 deletions
diff --git a/source/application/hal/hal.c b/source/application/hal/hal.c index 9c2ce32..2ce2684 100644 --- a/source/application/hal/hal.c +++ b/source/application/hal/hal.c @@ -28,6 +28,8 @@ #include "timing_adapter.h" /* Arm Ethos-U55 timing adapter driver header */ #include "timing_adapter_settings.h" /* Arm Ethos-U55 timing adapter settings */ +extern struct ethosu_driver ethosu_drv; /* Default Ethos-U55 device driver */ + /** * @brief Initialises the Arm Ethos-U55 NPU * @return 0 if successful, error code otherwise @@ -133,7 +135,7 @@ void hal_platform_release(hal_platform *platform) static void arm_npu_irq_handler(void) { /* Call the default interrupt handler from the NPU driver */ - ethosu_irq_handler(); + ethosu_irq_handler(ðosu_drv); } /** @@ -229,7 +231,8 @@ static int arm_npu_init(void) /* Initialise Ethos-U55 device */ const void * ethosu_base_address = (void *)(SEC_ETHOS_U55_BASE); - if (0 != (err = ethosu_init_v3( + if (0 != (err = ethosu_init( + ðosu_drv, /* Ethos-U55 driver device pointer */ ethosu_base_address, /* Ethos-U55's base address. */ NULL, /* Pointer to fast mem area - NULL for U55. */ 0, /* Fast mem region size. */ @@ -243,7 +246,7 @@ static int arm_npu_init(void) /* Get Ethos-U55 version */ struct ethosu_version version; - if (0 != (err = ethosu_get_version(&version))) { + if (0 != (err = ethosu_get_version(ðosu_drv, &version))) { printf_err("failed to fetch Ethos-U55 version info\n"); return err; } diff --git a/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/include/stubs_fvp.h b/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/include/stubs_simple_platform.h index aec0be1..9977cd2 100644 --- a/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/include/stubs_fvp.h +++ b/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/include/stubs_simple_platform.h @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef BSP_PACK_FASTMODEL_H -#define BSP_PACK_FASTMODEL_H +#ifndef STUBS_SIMPLE_PLATFORM_H +#define STUBS_SIMPLE_PLATFORM_H #include "cmsis.h" /* device specific header file */ #include "peripheral_memmap.h" /* peripheral memory map definitions */ /****************************************************************************/ /* Definitions and stub functions for modules currently */ -/* unavailable on the model */ +/* unavailable on this target platform */ /****************************************************************************/ #define GLCD_WIDTH 320 #define GLCD_HEIGHT 240 @@ -113,4 +113,4 @@ void GLCD_Box(unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned short color); -#endif /* BSP_PACK_FASTMODEL_H */ +#endif /* STUBS_SIMPLE_PLATFORM_H */ diff --git a/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/include/timer_fvp.h b/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/include/timer_simple_platform.h index c07a4eb..320a57a 100644 --- a/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/include/timer_fvp.h +++ b/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/include/timer_simple_platform.h @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef TIMER_FVP_H -#define TIMER_FVP_H +#ifndef TIMER_SIMPLE_PLATFORM_H +#define TIMER_SIMPLE_PLATFORM_H -#include "stubs_fvp.h" +#include "stubs_simple_platform.h" -/* Container for timestamp for fastmodel. */ -typedef struct _fvp_time_counter { +/* Container for timestamp for simple platform. */ +typedef struct _generic_time_counter { uint64_t counter_systick; -} fvp_time_counter; +} generic_time_counter; /** * @brief Resets the counters. @@ -33,13 +33,13 @@ void timer_reset(void); * @brief Gets the current counter values. * @returns counter struct. **/ -fvp_time_counter get_time_counter(void); +generic_time_counter get_time_counter(void); /** * @brief Gets the cycle counts elapsed between start and end. * @return difference in counter values as 32 bit unsigned integer. */ -uint64_t get_cycle_count_diff(fvp_time_counter *start, fvp_time_counter *end); +uint64_t get_cycle_count_diff(generic_time_counter *start, generic_time_counter *end); /** * @brief Enables or triggers cycle counting mechanism, if required @@ -52,4 +52,4 @@ void start_cycle_counter(void); */ void stop_cycle_counter(void); -#endif /* TIMER_FVP_H */ +#endif /* TIMER_SIMPLE_PLATFORM_H */ diff --git a/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/stubs_fvp.c b/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/stubs_simple_platform.c index e5b2969..df11adb 100644 --- a/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/stubs_fvp.c +++ b/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/stubs_simple_platform.c @@ -14,10 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#include "stubs_fvp.h" +#include "stubs_simple_platform.h" #include "bsp_core_log.h" +#include <inttypes.h> + uint32_t GetCoreClock(void) { return 1; @@ -46,9 +48,10 @@ void GLCD_Image(void *data, const uint32_t width, const uint32_t height, UNUSED(height); UNUSED(channels); UNUSED(downsample_factor); - debug("image display: (x, y, w, h) = (%u, %u, %u, %u)\n", + debug("image display: (x, y, w, h) = " + "(%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 ")\n", pos_x, pos_y, width, height); - debug("image display: channels = %u, downsample factor = %u\n", + debug("image display: channels = %" PRIu32 ", downsample factor = %" PRIu32 "\n", channels, downsample_factor); } @@ -100,12 +103,12 @@ void LED_On(uint32_t num, uint32_t port) { UNUSED(num); UNUSED(port); - debug("LED %u ON\n", num); + debug("LED %" PRIu32 " ON\n", num); } void LED_Off(uint32_t num, uint32_t port) { UNUSED(num); UNUSED(port); - debug("LED %u OFF\n", num); + debug("LED %" PRIu32 " OFF\n", num); } diff --git a/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/timer_fvp.c b/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/timer_simple_platform.c index b7a7232..6914209 100644 --- a/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/timer_fvp.c +++ b/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/timer_simple_platform.c @@ -14,17 +14,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#include "timer_fvp.h" +#include "timer_simple_platform.h" #include "irqs.h" #include "bsp_core_log.h" -fvp_time_counter get_time_counter(void) +#include <inttypes.h> + +generic_time_counter get_time_counter(void) { - fvp_time_counter t = { + generic_time_counter t = { .counter_systick = Get_SysTick_Cycle_Count() }; - debug("counter_systick: %llu\n", t.counter_systick); + debug("counter_systick: %" PRIu64 "\n", t.counter_systick); return t; } @@ -36,8 +38,8 @@ void timer_reset(void) debug("system tick config ready\n"); } -uint64_t get_cycle_count_diff(fvp_time_counter *start, - fvp_time_counter *end) +uint64_t get_cycle_count_diff(generic_time_counter *start, + generic_time_counter *end) { if (start->counter_systick > end->counter_systick) { warn("start > end; counter might have overflown\n"); diff --git a/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/uart_pl011.c b/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/uart_pl011.c index 5c1ee06..b2dee14 100644 --- a/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/uart_pl011.c +++ b/source/application/hal/platforms/bare-metal/bsp/bsp-packs/simple_platform/uart_pl011.c @@ -199,11 +199,12 @@ bool GetLine (char *lp, unsigned int len) case 0: *lp = 0; /* ESC - stop editing line. */ return false; - case CR: /* CR - done, stop editing line. */ - *lp = c; - lp++; /* increment line pointer. */ - cnt++; /* and count. */ + case CR: /* CR - done, stop editing line. */ + UartPutc (*lp = c); /* Echo and store character. */ + lp++; /* Increment line pointer */ + cnt++; /* and count. */ c = LF; + break; default: UartPutc (*lp = c); /* echo and store character. */ fflush (stdout); diff --git a/source/application/hal/platforms/bare-metal/bsp/include/bsp.h b/source/application/hal/platforms/bare-metal/bsp/include/bsp.h index fbe1ff6..20052ef 100644 --- a/source/application/hal/platforms/bare-metal/bsp/include/bsp.h +++ b/source/application/hal/platforms/bare-metal/bsp/include/bsp.h @@ -30,8 +30,8 @@ #else /* MPS3_PLATFORM */ -#include "stubs_fvp.h" /* Stubs for FVP. */ -#include "timer_fvp.h" /* Timer API for FVP. */ +#include "stubs_simple_platform.h" /* Stubs for simple_platform. */ +#include "timer_simple_platform.h" /* Timer API for simple_platform. */ #endif /* MPS3_PLATFORM */ diff --git a/source/application/hal/platforms/bare-metal/timer/baremetal_timer.c b/source/application/hal/platforms/bare-metal/timer/baremetal_timer.c index cd17a60..00028bd 100644 --- a/source/application/hal/platforms/bare-metal/timer/baremetal_timer.c +++ b/source/application/hal/platforms/bare-metal/timer/baremetal_timer.c @@ -260,7 +260,7 @@ static uint64_t bm_get_npu_axi0_read_cycle_diff(time_counter *st, time_counter * printf_err("EthosU PMU axi0 read counter overflow.\n"); return 0; } - return (uint64_t)(end->npu_axi0_read_ccnt - st->npu_axi0_read_ccnt); + return (uint64_t)(end->npu_axi0_read_beats - st->npu_axi0_read_beats); } static uint64_t bm_get_npu_axi0_write_cycle_diff(time_counter *st, time_counter *end) @@ -269,7 +269,7 @@ static uint64_t bm_get_npu_axi0_write_cycle_diff(time_counter *st, time_counter printf_err("EthosU PMU axi0 write counter overflow.\n"); return 0; } - return (uint64_t)(end->npu_axi0_write_ccnt - st->npu_axi0_write_ccnt); + return (uint64_t)(end->npu_axi0_write_beats - st->npu_axi0_write_beats); } static uint64_t bm_get_npu_axi1_read_cycle_diff(time_counter *st, time_counter *end) @@ -278,7 +278,7 @@ static uint64_t bm_get_npu_axi1_read_cycle_diff(time_counter *st, time_counter * printf_err("EthosU PMU axi1 read counter overflow.\n"); return 0; } - return (uint64_t)(end->npu_axi1_read_ccnt - st->npu_axi1_read_ccnt); + return (uint64_t)(end->npu_axi1_read_beats - st->npu_axi1_read_beats); } #endif /* defined (ARM_NPU) */ @@ -300,9 +300,9 @@ static time_counter bm_get_time_counter(void) #if defined (ARM_NPU) .npu_total_ccnt = ETHOSU_PMU_Get_CCNTR(), .npu_idle_ccnt = ETHOSU_PMU_Get_EVCNTR(0), - .npu_axi0_read_ccnt = ETHOSU_PMU_Get_EVCNTR(1), - .npu_axi0_write_ccnt = ETHOSU_PMU_Get_EVCNTR(2), - .npu_axi1_read_ccnt = ETHOSU_PMU_Get_EVCNTR(3) + .npu_axi0_read_beats = ETHOSU_PMU_Get_EVCNTR(1), + .npu_axi0_write_beats = ETHOSU_PMU_Get_EVCNTR(2), + .npu_axi1_read_beats = ETHOSU_PMU_Get_EVCNTR(3) #endif /* defined (ARM_NPU) */ }; @@ -310,14 +310,14 @@ static time_counter bm_get_time_counter(void) #if defined (ARM_NPU) debug("NPU total cc: %" PRIu64 "; NPU idle cc: %" PRIu32 - "; NPU axi0 read cc: %" PRIu32 - "; NPU axi0 write cc: %" PRIu32 - "; NPU axi1 read cc: %" PRIu32 "\n", + "; NPU axi0 read beats: %" PRIu32 + "; NPU axi0 write beats: %" PRIu32 + "; NPU axi1 read beats: %" PRIu32 "\n", t.npu_total_ccnt, t.npu_idle_ccnt, - t.npu_axi0_read_ccnt, - t.npu_axi0_write_ccnt, - t.npu_axi1_read_ccnt); + t.npu_axi0_read_beats, + t.npu_axi0_write_beats, + t.npu_axi1_read_beats); #endif /* defined (ARM_NPU) */ return t; diff --git a/source/application/hal/platforms/bare-metal/timer/include/baremetal_timer.h b/source/application/hal/platforms/bare-metal/timer/include/baremetal_timer.h index 3020dac..0d23a05 100644 --- a/source/application/hal/platforms/bare-metal/timer/include/baremetal_timer.h +++ b/source/application/hal/platforms/bare-metal/timer/include/baremetal_timer.h @@ -22,10 +22,10 @@ #if defined (MPS3_PLATFORM) #include "timer_mps3.h" - typedef mps3_time_counter base_time_counter; + typedef mps3_time_counter base_time_counter; #else /* defined (MPS3_PLATFORM) */ - #include "timer_fvp.h" - typedef fvp_time_counter base_time_counter; + #include "timer_simple_platform.h" + typedef generic_time_counter base_time_counter; #endif /* defined (MPS3_PLATFORM) */ typedef struct bm_time_counter { @@ -34,9 +34,9 @@ typedef struct bm_time_counter { #if defined (ARM_NPU) uint64_t npu_total_ccnt; uint32_t npu_idle_ccnt; - uint32_t npu_axi0_read_ccnt; - uint32_t npu_axi0_write_ccnt; - uint32_t npu_axi1_read_ccnt; + uint32_t npu_axi0_read_beats; + uint32_t npu_axi0_write_beats; + uint32_t npu_axi1_read_beats; #endif /* ARM_NPU */ } time_counter; diff --git a/source/application/hal/platforms/bare-metal/utils/system_init.c b/source/application/hal/platforms/bare-metal/utils/system_init.c index f95f214..376f08b 100644 --- a/source/application/hal/platforms/bare-metal/utils/system_init.c +++ b/source/application/hal/platforms/bare-metal/utils/system_init.c @@ -96,7 +96,7 @@ int system_init(void) } #else /* MPS3_PLATFORM */ - info("ARM model environment ready..\n"); + info("%s: complete\n", __FUNCTION__); return 0; #endif /* MPS3_PLATFORM */ |