diff options
author | Christian Vogel <vogelchr@vogel.cx> | 2010-10-14 21:00:16 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2012-02-03 23:59:35 +0100 |
commit | de8bb97ed51af386c35c659e94c9f08248ed65a4 (patch) | |
tree | 618910e65607fdc7c934325ef88dbe8b86a8ca66 | |
parent | df4218c8fd6d4a20c8840fd6246e41c58172bc09 (diff) |
Calypso FB: Makefile, "dummy" driver, Hello World
-rw-r--r-- | src/target/firmware/Makefile | 20 | ||||
-rw-r--r-- | src/target/firmware/apps/hello_world/main.c | 25 | ||||
-rw-r--r-- | src/target/firmware/fb/fb_dummy.c | 69 |
3 files changed, 108 insertions, 6 deletions
diff --git a/src/target/firmware/Makefile b/src/target/firmware/Makefile index 12bfa098..624b0555 100644 --- a/src/target/firmware/Makefile +++ b/src/target/firmware/Makefile @@ -6,6 +6,14 @@ BOARDS?=compal_e88 compal_e86 compal_e99 se_j100 gta0x pirelli_dpl10 # List of all applications (meant to be overridden on command line) APPLICATIONS?=hello_world compal_dsp_dump layer1 loader chainload +# Framebuffer support, board specific drivers +# + +FB_OBJS=fb/framebuffer.o fb/font.o fb/helvR08.o fb/helvB14.o + +FB_e88_OBJS=$(FB_OBJS) fb/fb_bw8.o fb/fb_st7558.o +FB_e99_OBJS=$(FB_OBJS) fb/fb_rgb332.o fb/fb_ssd1783.o +FB_dummy_OBJS=$(FB_OBJS) fb/fb_dummy.o # TI Calypso @@ -13,12 +21,12 @@ calypso_COMMON_OBJS=board/common/calypso_uart.o board/common/calypso_pwl.o # OpenMoko GTA0x -gta0x_OBJS=$(calypso_COMMON_OBJS) board/gta0x/rffe_gta0x_triband.o board/gta0x/init.o board/gta0x/rf_power.o +gta0x_OBJS=$(calypso_COMMON_OBJS) board/gta0x/rffe_gta0x_triband.o board/gta0x/init.o board/gta0x/rf_power.o $(FB_dummy_OBJS) gta0x_ENVIRONMENTS=highram # Pirelli DP-L10 -pirelli_dpl10_OBJS=$(calypso_COMMON_OBJS) board/pirelli_dpl10/rffe_dpl10_triband.o board/pirelli_dpl10/init.o board/pirelli_dpl10/rf_power.o +pirelli_dpl10_OBJS=$(calypso_COMMON_OBJS) board/pirelli_dpl10/rffe_dpl10_triband.o board/pirelli_dpl10/init.o board/pirelli_dpl10/rf_power.o $(FB_dummy_OBJS) pirelli_dpl10_ENVIRONMENTS=highram # Compal Generic @@ -34,7 +42,7 @@ highram_OBJS=board/compal/start.ram.o board/compal/exceptions_redirected.o board # Compal E88 -compal_e88_OBJS=$(compal_COMMON_OBJS) board/compal_e88/init.o +compal_e88_OBJS=$(compal_COMMON_OBJS) board/compal_e88/init.o $(FB_e88_OBJS) compal_e88_ENVIRONMENTS=$(compal_COMMON_ENVIRONMENTS) e88loader e88flash e88loader_LDS=board/compal_e88/loader.lds @@ -45,12 +53,12 @@ e88flash_OBJS=board/compal/start.rom.o board/compal/header.o board/compal/except # Compal E86 (has a different RFFE configuration) -compal_e86_OBJS=$(calypso_COMMON_OBJS) board/compal_e86/rffe_dualband_e86.o board/compal/rf_power.o board/compal_e86/init.o +compal_e86_OBJS=$(calypso_COMMON_OBJS) board/compal_e86/rffe_dualband_e86.o board/compal/rf_power.o board/compal_e86/init.o $(FB_dummy_OBJS) compal_e86_ENVIRONMENTS=$(compal_COMMON_ENVIRONMENTS) # Compal E99 -compal_e99_OBJS=$(compal_COMMON_OBJS) board/compal_e99/init.o +compal_e99_OBJS=$(compal_COMMON_OBJS) board/compal_e99/init.o $(FB_e99_OBJS) compal_e99_ENVIRONMENTS=$(compal_COMMON_ENVIRONMENTS) e99loader_LDS=board/compal_e99/loader.lds @@ -59,7 +67,7 @@ e99flash_LDS=board/compal_e99/flash.lds # Sony Ericsson J100 (made by Compal) -se_j100_OBJS=$(compal_COMMON_OBJS) board/se_j100/init.o +se_j100_OBJS=$(compal_COMMON_OBJS) board/se_j100/init.o $(FB_dummy_OBJS) se_j100_ENVIRONMENTS=$(compal_COMMON_ENVIRONMENTS) # Global include path diff --git a/src/target/firmware/apps/hello_world/main.c b/src/target/firmware/apps/hello_world/main.c index 1f49145e..174d7e3f 100644 --- a/src/target/firmware/apps/hello_world/main.c +++ b/src/target/firmware/apps/hello_world/main.c @@ -40,6 +40,7 @@ #include <calypso/misc.h> #include <comm/sercomm.h> #include <comm/timer.h> +#include <fb/framebuffer.h> /* Main Program */ const char *hr = "======================================================================\n"; @@ -87,6 +88,30 @@ int main(void) calypso_clk_dump(); puts(hr); + fb_clear(); + + fb_setfg(FB_COLOR_GREEN); + fb_setbg(FB_COLOR_WHITE); + fb_setfont(FB_FONT_HELVB14); + + fb_gotoxy(2,20); + fb_putstr("Hello World!",framebuffer->width-4); + + fb_setfg(FB_COLOR_RED); + fb_setbg(FB_COLOR_BLUE); + + fb_gotoxy(2,25); + fb_boxto(framebuffer->width-3,38); + + fb_setfg(FB_COLOR_WHITE); + fb_setfont(FB_FONT_HELVR08); + fb_gotoxy(8,33); + fb_putstr("osmocom-bb",framebuffer->width-4); + + fb_flush(); + + + /* Dump all memory */ //dump_mem(); #if 0 diff --git a/src/target/firmware/fb/fb_dummy.c b/src/target/firmware/fb/fb_dummy.c new file mode 100644 index 00000000..f0ff24d5 --- /dev/null +++ b/src/target/firmware/fb/fb_dummy.c @@ -0,0 +1,69 @@ +/* + "hardware" driver for a dummy framebuffer. Used when no + display hardware is supported + */ + +/* (C) 2010 by Christian Vogel <vogelchr@vogel.cx> + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include <fb/framebuffer.h> + +static void +fb_dummy_init(){ +} + +static void +fb_dummy_clear(){ +} + +static void +fb_dummy_boxto(uint16_t x,uint16_t y){ + framebuffer->cursor_x = x; + framebuffer->cursor_y = y; +} + +static void +fb_dummy_lineto(uint16_t x,uint16_t y){ + framebuffer->cursor_x = x; + framebuffer->cursor_y = y; +} + +static int +fb_dummy_putstr(char *c,int maxwidth){ + return 0; +} + +static void +fb_dummy_flush(){ +} + +struct framebuffer fb_dummy_framebuffer = { + .name = "dummyfb", + .init = fb_dummy_init, + .clear = fb_dummy_clear, + .boxto = fb_dummy_boxto, + .lineto = fb_dummy_lineto, + .putstr = fb_dummy_putstr, + .flush = fb_dummy_flush, + .width = 128, + .height = 64 +}; + +struct framebuffer *framebuffer = & fb_dummy_framebuffer; |