OpenBSL  v.0.1.0
Macros | Functions | Variables
OpenBSL_Core.c File Reference

Core (HW-independent) source file of OpenBSL implementation. More...

#include "devtypes.h"
#include "OpenBSL.h"
#include "OpenBSL_Int.h"

Macros

#define PASSWORD_RECEIVED_FLAG   (BV(0))
 
#define ENTRY(cmd, func)   func,
 

Functions

void OpenBSL_Init (void)
 device/HW initialization function for OpenBSL More...
 
void OpenBSL_RunBSL (void)
 BSL main routine. More...
 
void OpenBSL_CalcChksum (uint8_t byte, uint16_t *checksum)
 OpenBSL checksum calcuation routine - based on the simple BSD checksum algorithm. More...
 
void OpenBSL_ProcGetMemInfo (void)
 send memory info regarding on-chip non-volatile memory More...
 
void OpenBSL_ProcEraseImg (void)
 erase application image/memory area More...
 
void OpenBSL_ProcDnldImg (void)
 download/write incoming byte streams to application image/memory area, ended with 2 checksum bytes More...
 
void OpenBSL_ProcUpldImg (void)
 upload/read application image/memory area as byte streams, ended with 2 checksum bytes More...
 
void OpenBSL_ProcCalcChksm (void)
 calculate 2 checksum bytes of given memory area More...
 
void OpenBSL_ProcEraseSegment (void)
 erase certain part of application image/memory area More...
 
void OpenBSL_ProcDnldSegment (void)
 download/write input bytes to certain part of application image/memory area More...
 
void OpenBSL_ProcUpldSegment (void)
 upload/read bytes from certain part of application image/memory area More...
 
void OpenBSL_ProcPwdCmd (void)
 process incoming password to unlock other commands More...
 
void OpenBSL_ProcJumpToAddr (void)
 process command to jump to certain given address More...
 
void OpenBSL_ProcRunApp (void)
 process command to run application (jump to application reset vector at address APP_MEM_RESET_VECT_ADDR More...
 

Variables

const OpenBSL_MemSect_t MemInfo [OPEN_BSL_NUM_OF_MEM_SECTIONS]
 
uint16_t OpenBSL_InChecksum = 0
 
uint16_t OpenBSL_OutChecksum = 0
 

Detailed Description

Core (HW-independent) source file of OpenBSL implementation.

Version
0.1
Remarks

Function Documentation

void OpenBSL_CalcChksum ( uint8_t  byte,
uint16_t *  checksum 
)

OpenBSL checksum calcuation routine - based on the simple BSD checksum algorithm.

OpenBSL_CalcChksum()

Parameters
[in]byteinput byte
[out]checksumpointer to the checksum buffer
Returns
-
void OpenBSL_Init ( void  )

device/HW initialization function for OpenBSL

OpenBSL_Init()

Parameters
-
Returns
-
void OpenBSL_ProcCalcChksm ( void  )

calculate 2 checksum bytes of given memory area

OpenBSL_ProcCalcChksm

Parameters
-
Returns
-
void OpenBSL_ProcDnldImg ( void  )

download/write incoming byte streams to application image/memory area, ended with 2 checksum bytes

OpenBSL_ProcDnldImg

Parameters
-
Returns
-
void OpenBSL_ProcDnldSegment ( void  )

download/write input bytes to certain part of application image/memory area

OpenBSL_ProcDnldSegment

Parameters
-
Returns
-
void OpenBSL_ProcEraseImg ( void  )

erase application image/memory area

OpenBSL_ProcEraseImg

Parameters
-
Returns
-
void OpenBSL_ProcEraseSegment ( void  )

erase certain part of application image/memory area

OpenBSL_ProcEraseSegment

Parameters
-
Returns
-
void OpenBSL_ProcGetMemInfo ( void  )

send memory info regarding on-chip non-volatile memory

OpenBSL_ProcGetMemInfo

Parameters
-
Returns
-
void OpenBSL_ProcJumpToAddr ( void  )

process command to jump to certain given address

OpenBSL_ProcJumpToAddr

Parameters
-
Returns
-
Remarks

CMD packet format:

CMD (1 byte) = OPEN_BSL_CMD_JUMP_TO_ADDR ADDR (4 bytes) =

positive RESPONSE packet format:


| RESP |

RESP (1 byte) = OPEN_BSL_CMD_JUMP_TO_ADDR | OPEN_BSL_RESP_BIT_MASK

void OpenBSL_ProcPwdCmd ( void  )

process incoming password to unlock other commands

OpenBSL_ProcPwdCmd

Parameters
-
Returns
-
void OpenBSL_ProcRunApp ( void  )

process command to run application (jump to application reset vector at address APP_MEM_RESET_VECT_ADDR

OpenBSL_ProcRun

Parameters
-
Returns
-
Remarks

CMD packet format:


| CMD | ADDR |

CMD (1 byte) = OPEN_BSL_CMD_RUN_APP

positive RESPONSE packet format:


| RESP |

RESP (1 byte) = OPEN_BSL_CMD_RUN_APP | OPEN_BSL_RESP_BIT_MASK

void OpenBSL_ProcUpldImg ( void  )

upload/read application image/memory area as byte streams, ended with 2 checksum bytes

OpenBSL_ProcUpldImg

Parameters
-
Returns
-
void OpenBSL_ProcUpldSegment ( void  )

upload/read bytes from certain part of application image/memory area

OpenBSL_ProcUpldSegment

Parameters
-
Returns
-
void OpenBSL_RunBSL ( void  )

BSL main routine.

OpenBSL_RunBSL()

Parameters
-
Returns
-