Skip to content
Snippets Groups Projects
Select Git revision
  • 4ed46abf7123e9a227ece2ef5266bacc2202ac66
  • master default protected
  • fix-warnings
  • tvbgone-fixes
  • genofire/ble-follow-py
  • schneider/ble-stability-new-phy-adv
  • schneider/ble-stability
  • msgctl/gfx_rle
  • schneider/ble-stability-new-phy
  • add_menu_vibration
  • plaetzchen/ios-workaround
  • blinkisync-as-preload
  • schneider/max30001-pycardium
  • schneider/max30001-epicaridum
  • schneider/max30001
  • schneider/stream-locks
  • schneider/fundamental-test
  • schneider/ble-buffers
  • schneider/maxim-sdk-update
  • ch3/splashscreen
  • koalo/bhi160-works-but-dirty
  • v1.11
  • v1.10
  • v1.9
  • v1.8
  • v1.7
  • v1.6
  • v1.5
  • v1.4
  • v1.3
  • v1.2
  • v1.1
  • v1.0
  • release-1
  • bootloader-v1
  • v0.0
36 results

main.c

Blame
  • Forked from card10 / firmware
    Source project has a limited visibility.
    main.c 5.56 KiB
    #include "modules/modules.h"
    #include "os/core.h"
    #include "os/work_queue.h"
    #include "fs/filesystem.h"
    #include "drivers/drivers.h"
    #include "user_core/user_core.h"
    #include "os/config.h"
    #include "card10-version.h"
    #include "user_core/interrupts.h"
    #include "drivers/display/epic_ctx.h"
    
    #include "leds.h"
    #include "version-splash.h"
    
    #include "FreeRTOS.h"
    #include "task.h"
    #include "mxc_delay.h"
    
    #include <stdlib.h>
    #include <string.h>
    #include <machine/endian.h>
    
    #include "epic_boot.c"
    
    int main(void)
    {
    	watchdog_init();
    
    	LOG_INFO("startup", "Epicardium startup ...");
    	LOG_INFO("startup", "Version " CARD10_VERSION);
    
    	LOG_DEBUG("startup", "Initializing hardware ...");
    	hardware_early_init();
    
    	load_config();
    
    	//LED feedback in case of dead display
    	epic_leds_set(11, 0, 0, 1);
    	epic_leds_set(12, 0, 0, 1);
    	epic_leds_set(13, 0, 0, 1);
    	epic_leds_set(14, 0, 0, 1);
    
    	epic_disp_clear(0x0000);
    
    #if 0 /* reenable for future releases */
    	epic_leds_set_rocket(0, 31);
    	epic_leds_set_rocket(1, 31);
    	epic_leds_set_rocket(2, 31);
    
    	// TODO: Use blit function here
    #if BYTE_ORDER == LITTLE_ENDIAN
    	for (size_t i = 0; i < sizeof(epicardium_ctx_fb); i += 2) {
    		epicardium_ctx_fb[i]     = version_splash[i + 1];
    		epicardium_ctx_fb[i + 1] = version_splash[i];
    	}
    #else
    	memcpy(epicardium_ctx_fb, version_splash, sizeof(epicardium_ctx_fb));
    #endif
    
    	if (strcmp(CARD10_VERSION, "v1.17") != 0) {
    		ctx_font_size(epicardium_ctx, 20.0f);
    		ctx_text_baseline(epicardium_ctx, CTX_TEXT_BASELINE_BOTTOM);
    		ctx_rgba8(epicardium_ctx, 0xff, 0xc6, 0x00, 0xff);
    
    		ctx_text_align(epicardium_ctx, CTX_TEXT_ALIGN_CENTER);
    		ctx_move_to(epicardium_ctx, 80.0f, 58.0f);
    		ctx_text(epicardium_ctx, "Epicardium");
    
    		ctx_text_align(epicardium_ctx, CTX_TEXT_ALIGN_LEFT);
    		ctx_move_to(epicardium_ctx, 2.0f, 78.0f);