CANopen Bootloader Documentation
Version 4.10.00
Loading...
Searching...
No Matches
cbl_objs.h File Reference

Detailed Description

This module implements the variables for the CANopen Bootloader objects. The following table shows the variable assignment.

Index Description Function / Variable Configuration Symbol
1000h Device type ulIdx1000_DeviceTypeG -
1001h Error register ubIdx1001_ErrorRegisterG -
1002h Manufacturer status register ulIdx1002_StatusRegisterG -
1008h Manufacturer device name aubIdx1008_DeviceNameG CBL_DICT_OBJ_1008
1009h Manufacturer hardware version aubIdx1009_HwVersionG CBL_DICT_OBJ_1009
100Ah Manufacturer software version aubIdx100A_SwVersionG CBL_DICT_OBJ_100A
1018:01h Vendor ID ulIdx1018_VendorIdG -
1018:02h Product code ulIdx1018_ProductCodeG -
1018:03h Revision number ulIdx1018_RevisionNumG -
1F51h Program control aubIdx1F51_ControlG[] -
1F56h Application software identification aulIdx1F56_SoftIdentG[] CBL_PROG_MAX
1F57h Flash status identification aulIdx1F57_FlashStatusG[] CBL_PROG_MAX
+ Include dependency graph for cbl_objs.h:

Variables

uint32_t ulIdx1000_DeviceTypeG
 
uint8_t ubIdx1001_ErrorRegisterG
 
uint32_t ulIdx1002_StatusRegisterG
 
uint8_t aubIdx1008_DeviceNameG []
 
uint8_t aubIdx1009_HwVersionG []
 
uint8_t aubIdx100A_SwVersionG []
 
uint32_t ulIdx1018_VendorIdG
 
uint32_t ulIdx1018_ProductCodeG
 
uint32_t ulIdx1018_RevisionNumG
 
uint8_t aubIdx1F51_ControlG []
 
uint32_t aulIdx1F56_SoftIdentG []
 
uint32_t aulIdx1F57_FlashStatusG []
 

Variable Documentation

◆ aubIdx1008_DeviceNameG

aubIdx1008_DeviceNameG
extern

Manufacturer device name - index 1008h

The variable aubIdx1008_DeviceNameG holds the Manufacturer device name. If the string length is limited to 4 characters, the SDO segmented read transfer (CBL_SDO_SEGMENTED_RD) can be disabled. The object is only available if the configuration symbol CBL_DICT_OBJ_1008 is set to 1.

An example for setting this value is located in the file cbl_user.c

#if CBL_DICT_OBJ_1008 == 1
uint8_t aubIdx1008_DeviceNameG[] = "Boot";
#endif
uint8_t aubIdx1008_DeviceNameG[]
Manufacturer device name - index 1008h

◆ aubIdx1009_HwVersionG

aubIdx1009_HwVersionG
extern

Manufacturer hardware version - index 1009h

The variable aubIdx1009_HwVersionG holds the Manufacturer hardware version of the device. If the string length is limited to 4 characters, the SDO segmented read transfer (CBL_SDO_SEGMENTED_RD) can be disabled. The object is only available if the configuration symbol CBL_DICT_OBJ_1009 is set to 1.

An example for setting this value is located in the file cbl_user.c

#if CBL_DICT_OBJ_1009 == 1
uint8_t aubIdx1009_HwVersionG[] = "1.00";
#endif
uint8_t aubIdx1009_HwVersionG[]
Manufacturer hardware version - index 1009h

◆ aubIdx100A_SwVersionG

aubIdx100A_SwVersionG
extern

Manufacturer software version - index 100Ah

The variable aubIdx100A_SwVersionG holds the Manufacturer software version of the device. If the string length is limited to 4 characters, the SDO segmented read transfer (CBL_SDO_SEGMENTED_RD) can be disabled. The object is only available if the configuration symbol CBL_DICT_OBJ_100A is set to 1.

An example for setting this value is located in the file cbl_user.c

#if CBL_DICT_OBJ_100A == 1
uint8_t aubIdx100A_SwVersionG[] = "1.00";
#endif
uint8_t aubIdx100A_SwVersionG[]
Manufacturer software version - index 100Ah

◆ aubIdx1F51_ControlG

aubIdx1F51_ControlG
extern

Program control - index 1F51:0xh

This object shall be used for the control of the programs downloaded to the CANopen device (object 1F50h – program data). Possible values for this object are listed in the CblProgControl_e enumeration.

◆ aulIdx1F56_SoftIdentG

aulIdx1F56_SoftIdentG
extern

Program software identification - index 1F56:0xh

If a CANopen device supports program software download, a network configuration tool or a CANopen manager may use this object to verify the version of the program software after a CANopen device reset and to check if a re-download is necessary.

The CANopen device shall calculate a unique identification per program software, which it returns by access on the corresponding sub-index of 1F56h program software identification. The calculation method is implementation specific - it may be a checksum over the Flash page or a build number of the hex file or any other manufacturer-specific method. The CANopen Bootloader protocol stack provides the function CblMgrBufferCrc() for that purpose.

The CANopen device shall ensure that on flashing of the same program the same identification will result. If no valid Flash content / program software is available, the program software identification shall be 0. A valid program software shall not have the identification 0.

◆ aulIdx1F57_FlashStatusG

aulIdx1F57_FlashStatusG
extern

Flash status identification - index 1F57:0xh

On start of download of a new program to object 1F50:0xh Program Data the Flash status indication in 1F57:0xh with the same sub-index shall be set to eCBL_FLASH_STATUS_PROGRESS. On successful completion of the Flashing process the Flash status indication shall be set to eCBL_FLASH_STATUS_OK. If an error occurs, bit 0 shall be set to 0 and bits 1 to 7 shall contain the error reason (see enumeration CblFlashFail_e) , bits 8 to 15 shall be 0 and bits 16 to 31 may be set manufacturer-specific.

An example for setting this value is located in the file cbl_user.c, also refer to the Flash Programming section.

◆ ubIdx1001_ErrorRegisterG

ubIdx1001_ErrorRegisterG
extern

Error register - index 1001h

The variable ubIdx1001_ErrorRegisterG holds the error status of the device. It must be set by the application program. Possible values are listed in the enumeration CoErrReg_e.

◆ ulIdx1000_DeviceTypeG

ulIdx1000_DeviceTypeG
extern

Device type - index 1008h

The variable ulIdx1000_DeviceTypeG holds the device profile number. If the CANopen device does not support a standard profile (i.e. the CANopen Bootloader is not a device profile), the value must be set to zero (0x00000000).

An example for setting this value is located in the file cbl_user.c

uint32_t ulIdx1000_DeviceTypeG = 0x00000000;
uint32_t ulIdx1000_DeviceTypeG
Device type - index 1008h

◆ ulIdx1002_StatusRegisterG

ulIdx1002_StatusRegisterG
extern

Manufacturer status register - index 1002h

The variable ulIdx1002_StatusRegisterG holds a manufacturer specific value (32 bit). It must be set by the application program.

◆ ulIdx1018_ProductCodeG

ulIdx1018_ProductCodeG
extern

Identity object - product code - index 1018:02h

The value ulIdx1018_ProductCodeG identifies a specific device version.

An example for setting this value is located in the file cbl_user.c

uint32_t ulIdx1018_VendorIdG = ((uint32_t) 0x0000000E);
uint32_t ulIdx1018_ProductCodeG = ((uint32_t) CBL_PRODUCT_CODE);
uint32_t ulIdx1018_RevisionNumG = ((uint32_t) CBL_VERSION_MAJOR << 24) | ((uint32_t) CBL_VERSION_MINOR << 16) | 0x0100;
#define CBL_VERSION_MAJOR
Definition cbl_defs.h:72
#define CBL_VERSION_MINOR
Definition cbl_defs.h:82
uint32_t ulIdx1018_RevisionNumG
Identity object - revision number - index 1018:03h
uint32_t ulIdx1018_VendorIdG
Identity object - vendor ID - index 1018:01h
uint32_t ulIdx1018_ProductCodeG
Identity object - product code - index 1018:02h

◆ ulIdx1018_RevisionNumG

ulIdx1018_RevisionNumG
extern

Identity object - revision number - index 1018:03h

The value ulIdx1018_RevisionNumC consists of a major revision number and a minor revision number. The major revision number identifies a specific CANopen behaviour. If the CANopen functionality is expanded, the major revision has to be incremented. The minor revision number identifies different versions with the same CANopen behaviour.

An example for setting this value is located in the file cbl_user.c

uint32_t ulIdx1018_VendorIdG = ((uint32_t) 0x0000000E);
uint32_t ulIdx1018_ProductCodeG = ((uint32_t) CBL_PRODUCT_CODE);
uint32_t ulIdx1018_RevisionNumG = ((uint32_t) CBL_VERSION_MAJOR << 24) | ((uint32_t) CBL_VERSION_MINOR << 16) | 0x0100;

◆ ulIdx1018_VendorIdG

ulIdx1018_VendorIdG
extern

Identity object - vendor ID - index 1018:01h

The value ulIdx1018_VendorIdC holds the CANopen vendor ID. The vendor ID is assigned by the CiA office.

An example for setting this value is located in the file cbl_user.c

uint32_t ulIdx1018_VendorIdG = ((uint32_t) 0x0000000E);
uint32_t ulIdx1018_ProductCodeG = ((uint32_t) CBL_PRODUCT_CODE);
uint32_t ulIdx1018_RevisionNumG = ((uint32_t) CBL_VERSION_MAJOR << 24) | ((uint32_t) CBL_VERSION_MINOR << 16) | 0x0100;