Skip to content
Snippets Groups Projects
Select Git revision
  • 017ef3f9a498f14ae7f6e33e9fe6d35b7f8dabf1
  • master default protected
  • debug-queue-handling
  • issue104-UIError-update-fail
  • unique-advert-id
  • fix-issue_71
  • msgctl/gfx_rle
  • msgctl/faultscreen
  • msgctl/textbuffer_api
  • schneider/bonding
  • schneider/bootloader-update-9a0d158
  • schneider/bsec
  • rahix/bma
  • rahix/bhi
  • schleicher-test
  • schneider/schleicher-test
  • freertos-btle
  • ch3/api-speed-eval2
  • schneider/mp-for-old-bl
  • ch3/leds-api
  • ch3/genapi-refactor
  • v0.0
22 results

main.c

Blame
  • Forked from card10 / firmware
    Source project has a limited visibility.
    main.c 2.43 KiB
    #include <stdio.h>
    #include <stdlib.h>
    
    #include "max32665.h"
    #include "uart.h"
    #include "cdcacm.h"
    
    #include "card10.h"
    #include "pmic.h"
    #include "leds.h"
    #include "api/dispatcher.h"
    #include "l0der/l0der.h"
    #include "modules/modules.h"
    #include "modules/log.h"
    #include "modules/stream.h"
    #include "api/interrupt-sender.h"
    
    #include <Heart.h>
    #include "GUI_Paint.h"
    
    #include "FreeRTOS.h"
    #include "task.h"
    
    TaskHandle_t dispatcher_task_id;
    
    /*
     * API dispatcher task.  This task will sleep until an API call is issued and
     * then wake up to dispatch it.
     */
    void vApiDispatcher(void *pvParameters)
    {
    	LOG_DEBUG("dispatcher", "Ready.");
    	while (1) {
    		if (api_dispatcher_poll()) {
    			api_dispatcher_exec();
    		}
    		ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
    	}
    }
    
    int main(void)
    {
    	LOG_INFO("startup", "Epicardium startup ...");
    
    	card10_init();
    	card10_diag();
    
    	Paint_DrawImage(Heart, 0, 0, 160, 80);
    	LCD_Update();
    
    	/* TODO: Move this to its own function */
    	SCB->SCR |= SCB_SCR_SEVONPEND_Msk;
    
    	if (cdcacm_init() < 0) {
    		LOG_ERR("startup", "USB-Serial unavailable");
    	}
    
    	fatfs_init();
    	api_interrupt_init();
    	stream_init();
    
    	LOG_INFO("startup", "Initializing tasks ...");
    
    	/* Serial */
    	if (xTaskCreate(
    		    vSerialTask,
    		    (const char *)"Serial",
    		    configMINIMAL_STACK_SIZE,
    		    NULL,
    		    tskIDLE_PRIORITY + 1,