NEORV32 Software Framework Documentation
The NEORV32 RISC-V Processor
Loading...
Searching...
No Matches
main.c File Reference

NEORV32 bootloader. More...

#include <stdint.h>
#include <neorv32.h>
#include <config.h>
#include <spi_flash.h>
#include <twi_flash.h>
#include <uart.h>

Macros

#define EXE_STREAM_UART   0
 
#define EXE_STREAM_SPI   1
 
#define EXE_STREAM_TWI   2
 
#define EXE_OFFSET_SIGNATURE   (0)
 
#define EXE_OFFSET_SIZE   (4)
 
#define EXE_OFFSET_CHECKSUM   (8)
 
#define EXE_OFFSET_DATA   (12)
 
#define EXE_SIGNATURE   0x4788CAFEU
 
#define xstr(a)
 
#define str(a)
 

Functions

void bootloader_trap_handler (void)
 
void print_help (void)
 
void start_app (void)
 
int load_exe (int src)
 
void save_exe (int dst)
 
int get_exe_word (int src, uint32_t addr, uint32_t *rdata)
 
int put_exe_word (int dst, uint32_t addr, uint32_t wdata)
 
int main (void)
 

Variables

uint32_t exe_available = 0
 

Detailed Description

NEORV32 bootloader.

Macro Definition Documentation

◆ str

#define str ( a)
Value:
#a

◆ xstr

#define xstr ( a)
Value:
str(a)

Function Documentation

◆ bootloader_trap_handler()

void bootloader_trap_handler ( void )

Bare-metal Bootloader trap handler. Used for the CLINT timer tick and to capture any other traps.

◆ get_exe_word()

int get_exe_word ( int src,
uint32_t addr,
uint32_t * rdata )

Get word from executable stream.

Parameters
srcSource of executable stream data. See #EXE_STREAM_SOURCE_enum.
addrAddress when accessing SPI flash or TWI Device.
[in,out]rdataPointer for returned data (uint32_t).
Returns
0 if success, != 0 if error.

◆ load_exe()

int load_exe ( int src)

Get executable stream.

Parameters
srcSource of executable stream data. See #EXE_STREAM_SOURCE_enum.
Returns
0 if success, != 0 if error.

◆ main()

int main ( void )

Bootloader main.

◆ print_help()

void print_help ( void )

Print help menu.

◆ put_exe_word()

int put_exe_word ( int dst,
uint32_t addr,
uint32_t wdata )

Put word to executable stream.

Parameters
dstSource of executable stream data. See #EXE_STREAM_SOURCE_enum.
addrAddress when accessing SPI flash or TWI Device.
[in]wdataWrite data word (uint32_t).
Returns
0 if success, != 0 if error.

◆ save_exe()

void save_exe ( int dst)

Copy memory content as executable to flash.

Parameters
dstDestination of executable. See #EXE_STREAM_SOURCE_enum.

◆ start_app()

void start_app ( void )

Start application program.