102 lines
No EOL
3.1 KiB
Markdown
102 lines
No EOL
3.1 KiB
Markdown
# Infineon Traveo II Rust Project
|
|
|
|
This project is configured for developing applications on Infineon Traveo II microcontrollers using Rust.
|
|
|
|
## Prerequisites
|
|
|
|
### Required Tools
|
|
|
|
1. **Rust Toolchain**
|
|
```bash
|
|
rustup target add thumbv6m-none-eabi thumbv7em-none-eabi
|
|
rustup component add rust-src
|
|
```
|
|
|
|
2. **GNU Arm Embedded Toolchain**
|
|
- Download from: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm
|
|
- Install to: `C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2021.10\`
|
|
- Add to PATH environment variable
|
|
|
|
3. **OpenOCD**
|
|
- Download from: http://openocd.org/
|
|
- Ensure `openocd.exe` is in your PATH
|
|
|
|
4. **VSCode Extensions**
|
|
- Cortex-Debug (marus25.cortex-debug)
|
|
- Rust Analyzer (rust-lang.rust-analyzer)
|
|
|
|
## Supported Devices
|
|
|
|
- **Cortex-M7 devices**: CYT4BF, CYT4DN series
|
|
- **Cortex-M0+ devices**: CYT2B7, CYT2B9 series
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
├── .vscode/
|
|
│ ├── launch.json # Debug configurations
|
|
│ └── tasks.json # Build tasks
|
|
├── src/
|
|
│ └── main.rs # Application entry point
|
|
├── memory.x # Memory configuration (Cortex-M7)
|
|
├── memory-m0.x # Memory configuration (Cortex-M0+)
|
|
├── build.rs # Build script
|
|
├── openocd.cfg # OpenOCD configuration
|
|
├── traveo-cyt4bf.cfg # CYT4BF target config
|
|
├── traveo-cyt2b7.cfg # CYT2B7 target config
|
|
└── Cargo.toml # Project configuration
|
|
```
|
|
|
|
## Building
|
|
|
|
### For Cortex-M7 devices (CYT4BF, CYT4DN)
|
|
```bash
|
|
cargo build --target thumbv7em-none-eabi --features traveo-cyt4bf
|
|
```
|
|
|
|
### For Cortex-M0+ devices (CYT2B7, CYT2B9)
|
|
```bash
|
|
cargo build --target thumbv6m-none-eabi --features traveo-cyt2b7
|
|
```
|
|
|
|
### Release builds
|
|
```bash
|
|
cargo build --release --target thumbv7em-none-eabi --features traveo-cyt4bf
|
|
```
|
|
|
|
## Debugging
|
|
|
|
1. Connect your Traveo II development board
|
|
2. Start OpenOCD:
|
|
```bash
|
|
openocd -f openocd.cfg -f traveo-cyt4bf.cfg
|
|
```
|
|
3. In VSCode, use `F5` or go to Run and Debug panel
|
|
4. Select the appropriate debug configuration:
|
|
- "Debug Traveo (Cortex-M7)" for CYT4BF/CYT4DN
|
|
- "Debug Traveo (Cortex-M0+)" for CYT2B7/CYT2B9
|
|
|
|
## Memory Configuration
|
|
|
|
- **Cortex-M7**: 6MB Flash, 512KB RAM, 64KB TCM
|
|
- **Cortex-M0+**: 2MB Flash, 256KB RAM
|
|
|
|
## Troubleshooting
|
|
|
|
1. **OpenOCD not found**: Ensure OpenOCD is installed and in your PATH
|
|
2. **Target not found**: Check that your development board is connected and powered
|
|
3. **Build errors**: Make sure you have the correct target and features selected
|
|
|
|
## Development Tips
|
|
|
|
1. Use `panic-halt` for production code (default)
|
|
2. Use `semihosting` feature for debugging output during development
|
|
3. Memory regions can be customized in `memory.x` and `memory-m0.x` files
|
|
4. Add device-specific configurations in the respective `.cfg` files
|
|
|
|
## Next Steps
|
|
|
|
1. Update the memory configurations for your specific device
|
|
2. Add device-specific HAL code in `src/main.rs`
|
|
3. Configure OpenOCD for your specific development board
|
|
4. Add any additional dependencies needed for your application |