# CANopenNode_C2000_bootloader
**Repository Path**: lcj_2023/CANopenNode_C2000_bootloader
## Basic Information
- **Project Name**: CANopenNode_C2000_bootloader
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-16
- **Last Updated**: 2025-11-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# CANopenNode_C2000_bootloader
This is a CANopen bootloader for C2000 microcontroller using CANopenNode.
| Tool | Version | Note |
|--------------------------|-----------------|-------------------------|
| Code Composer Studio | v10.2.0 | |
| TI Compiler | v22.6.0.LTS | |
| Object Dictionary Editor | v4.1.2-gff637a7 | Link: [CANopenEditor](https://github.com/CANopenNode/CANopenEditor) |
## Feature
- Does not use interrupts
- Entirely polled communication
- Executed after device reset or power-up. Execution is independent on loaded application.
- Minimal hardware initialization.
- Flash programming and verification.
- Overwrite protection of bootloader code area (Flash Sector A).
- Application code verification using CRC. List of supported algorithms is found in Section 8.9 of TMS320C28xx Assembly Language Tool document. Example of supported CRC algorithms:
- CRC32_PRIME
- CRC16_802_15_4
- Backdoor access with waiting window (default is 500ms)
- LSS slave supported.
- LSS slave node Id and bitrate is stored into EEPROM, if available. Refer to [EEPROM Utilization](#eeprom-utilization)
- see bootloader device [Object Dictionary](c2000_bootloader.md)
## Execution Flow
```mermaid
flowchart TD
A(Reset) --> B{Check App CRC}
B -->|valid|J{Check Node ID}
J -->|valid|C{Check Boot flag}
C -->|BOOTLOADER_RUN_VAL|D(Run Bootloader)
C -->|APPLICATION_RUN_VAL|E(Run Application)
C -->|other value|F[Timer on]
F -->G{Has expired?}
G -->|yes|E(Run Application)
G -->|no|H{SDO received}
H -->|no|G
H -->|yes|I[Timer off]
I -->D
B -->|invalid|D
J -->|invalid|D
```
## EEPROM Utilization
| Address | Usage |
|---------------| -----------------|
| 0x0000-0x0003 |
Entry Signature | 0x0000-0x0001 | Length of Entry(0x0004) |
| 0x0002-0x0003 | CRC16 of Entry |
|
| 0x0040-0x0043 | Entry: LSS Configuration| 0x0040-0x0041 | LSS bit rate |
| 0x0042-0x0043 | LSS node ID |
|