X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=examples%2Flm3s1968%2Flm3s1968.c;h=e287e84d9760d27f55e7fd22713706966fdc10b5;hb=5b29bce24f96abdf3660e4c719cbf1ce94cfb8c5;hp=a9e995e357834283450b41bb16b23dd83f63fc0e;hpb=2f91d0006f90e1dada0ac16bcc606ec0ea498ddc;p=bertos.git diff --git a/examples/lm3s1968/lm3s1968.c b/examples/lm3s1968/lm3s1968.c index a9e995e3..e287e84d 100644 --- a/examples/lm3s1968/lm3s1968.c +++ b/examples/lm3s1968/lm3s1968.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -47,9 +48,9 @@ #include "cfg/compiler.h" #include "cfg/cfg_gfx.h" -#include "hw/hw_lcd.h" +#include "hw/hw_rit128x96.h" -#define PROC_STACK_SIZE KERN_MINSTACKSIZE +#define PROC_STACK_SIZE KERN_MINSTACKSIZE * 2 #if CONFIG_KERN_HEAP #define hp_stack NULL @@ -63,14 +64,14 @@ static PROC_DEFINE_STACK(ser_stack, PROC_STACK_SIZE); static PROC_DEFINE_STACK(led_stack, PROC_STACK_SIZE); #endif -static Process *hp_proc, *lp_proc, *res_proc; - -static hptime_t start, end; - +extern Font font_helvB10; static uint8_t raster[RAST_SIZE(LCD_WIDTH, LCD_HEIGHT)]; static Bitmap bm; -extern Font font_helvB10; +static Process *hp_proc, *lp_proc, *res_proc; +static hptime_t start, end; + +static Serial ser_port; static void led_init(void) { @@ -110,6 +111,23 @@ static void NORETURN led_process(void) } } +static void NORETURN ser_process(void) +{ + char buf[32]; + int i; + + ser_init(&ser_port, SER_UART0); + ser_setbaudrate(&ser_port, 115200); + + /* BeRTOS terminal */ + for (i = 0; ; i++) + { + kfile_printf(&ser_port.fd, "\n\r[%03d] BeRTOS:~$ ", i); + kfile_gets_echo(&ser_port.fd, buf, sizeof(buf), true); + kfile_printf(&ser_port.fd, "%s", buf); + } +} + INLINE hptime_t get_hp_ticks(void) { return (TIMER_HW_CNT - timer_hw_hpread()) + @@ -119,8 +137,8 @@ INLINE hptime_t get_hp_ticks(void) static void NORETURN res_process(void) { const char spinner[] = {'/', '-', '\\', '|'}; - char buffer[32], c; int i; + char c; for (i = 0; ; i++) { @@ -129,29 +147,17 @@ static void NORETURN res_process(void) clock = timer_clock_unlocked(); /* Display uptime (in ticks) */ - buffer[sizeof(buffer) - 1] = '\0'; - snprintf(buffer, sizeof(buffer) - 1, - "uptime: %lu sec", clock / 1000); - text_xprintf(&bm, 2, 0, TEXT_FILL, buffer); + text_xprintf(&bm, 2, 0, TEXT_FILL, "uptime: %lu sec", clock / 1000); /* Show context switch (in clock cycles) */ c = spinner[i % countof(spinner)]; - buffer[sizeof(buffer) - 1] = '\0'; - snprintf(buffer, sizeof(buffer) - 1, - "%c Context switch %c", c, c); - text_xprintf(&bm, 4, 0, TEXT_CENTER | TEXT_FILL, buffer); - buffer[sizeof(buffer) - 1] = '\0'; - snprintf(buffer, sizeof(buffer) - 1, - " %lu clock cycles", end - start); - text_xprintf(&bm, 6, 0, TEXT_FILL, buffer); - + text_xprintf(&bm, 4, 0, TEXT_CENTER | TEXT_FILL, "%c Context switch %c", c, c); + text_xprintf(&bm, 6, 0, TEXT_FILL, " %lu clock cycles", end - start); /* Show context switch (in usec) */ - buffer[sizeof(buffer) - 1] = '\0'; - snprintf(buffer, sizeof(buffer) - 1, + text_xprintf(&bm, 7, 0, TEXT_FILL, " %lu.%lu usec", ((end - start) * 1000000) / CPU_FREQ, ((end - start) * (100000000 / CPU_FREQ)) % 100); - text_xprintf(&bm, 7, 0, TEXT_FILL, buffer); rit128x96_lcd_blitBitmap(&bm); } } @@ -214,28 +220,8 @@ static void bouncing_logo(Bitmap *bm) } } -static void NORETURN ser_process(void) -{ - char buf[32]; - Serial ser_port; - int i; - - ser_init(&ser_port, SER_UART0); - ser_setbaudrate(&ser_port, 115200); - - /* BeRTOS terminal */ - for (i = 0; ; i++) - { - kfile_printf(&ser_port.fd, "\n\r[%03d] BeRTOS:~$ ", i); - kfile_gets_echo(&ser_port.fd, buf, sizeof(buf), true); - kfile_printf(&ser_port.fd, "%s", buf); - } -} - int main(void) { - char buffer[32]; - IRQ_ENABLE; kdbg_init(); @@ -262,9 +248,8 @@ int main(void) rit128x96_lcd_blitBitmap(&bm); proc_testRun(); #endif - snprintf(buffer, sizeof(buffer), + text_xprintf(&bm, 0, 0, TEXT_FILL, "CPU: Cortex-M3 %luMHz", CPU_FREQ / 1000000); - text_xprintf(&bm, 0, 0, TEXT_FILL, buffer); rit128x96_lcd_blitBitmap(&bm); text_xprintf(&bm, 1, 0, TEXT_FILL, "Board: LM3S1968 EVB"); rit128x96_lcd_blitBitmap(&bm);