lots of stuff
This commit is contained in:
108
CLAUDE.md
Normal file
108
CLAUDE.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
This is an embedded C application for the LPC54114 microcontroller (ARM Cortex-M4) running on the LPCXpresso54114 development board. The project appears to be a transmitter device (TX) with signal generation, display, USB communication, and power management capabilities.
|
||||
|
||||
**Hardware Target:** NXP LPC54114 dual-core Cortex-M4/M0+ microcontroller
|
||||
**Software Version:** 1.10A (defined in source/System/system.h:18)
|
||||
|
||||
## Build System
|
||||
|
||||
### Build Commands
|
||||
```bash
|
||||
# Build debug version
|
||||
cd Debug
|
||||
make all
|
||||
|
||||
# Build release version
|
||||
cd Release
|
||||
make all
|
||||
|
||||
# Clean build artifacts
|
||||
make clean
|
||||
```
|
||||
|
||||
### Build Artifacts
|
||||
- **Target executable:** `TX_App.axf` (ARM executable format)
|
||||
- **Binary output:** `TX_App.bin` (generated post-build)
|
||||
- **Memory map:** `TX_App.map`
|
||||
- **Linker scripts:** `TX_App_Debug.ld`, `TX_App_Release.ld`
|
||||
|
||||
### Toolchain
|
||||
- **Compiler:** arm-none-eabi-gcc
|
||||
- **Target:** Cortex-M4 with hardware floating point (fpv4-sp-d16)
|
||||
- **IDE Support:** MCUXpresso, IAR, Keil MDK
|
||||
|
||||
## Code Architecture
|
||||
|
||||
### Core System Structure
|
||||
|
||||
**Main Application Flow:**
|
||||
- Entry point: `source/main.c`
|
||||
- System initialization: `source/System/system.c`
|
||||
- Hardware initialization: `source/init.c`
|
||||
|
||||
**Key Subsystems:**
|
||||
|
||||
1. **Signal Generation (`source/dds.c`, `source/fgen.c`)**
|
||||
- DDS (Direct Digital Synthesis) for frequency generation
|
||||
- Function generator capabilities
|
||||
- Frequency range: 3.14kHz - 200kHz for broadcast mode
|
||||
- System clock: 12MHz
|
||||
|
||||
2. **Display System (`source/display.c`, `source/lcd.c`)**
|
||||
- Graphics library in `source/Graphics/`
|
||||
- Font rendering system in `source/Fonts/`
|
||||
- Multi-language support with translations
|
||||
- Icon and bitmap handling
|
||||
|
||||
3. **Power Management (`source/battery.c`, `source/ports.c`)**
|
||||
- Battery type detection (Lithium/Alkaline/External DC)
|
||||
- Power limits: 10W (Lithium/Ext), 5W (Alkaline)
|
||||
- Clamp control and regulation
|
||||
|
||||
4. **Communication (`source/USB/`, `source/broadcast.c`)**
|
||||
- USB CDC (Virtual COM) interface
|
||||
- Broadcast transmission capabilities
|
||||
- Flash update support via USB
|
||||
|
||||
5. **Hardware Drivers (`source/driver.c`, `source/io.c`)**
|
||||
- SPI communication for external components
|
||||
- ADC for measurements
|
||||
- Timer and PWM control
|
||||
- GPIO port management
|
||||
|
||||
### Directory Structure
|
||||
|
||||
- `source/` - Main application code
|
||||
- `source/System/` - System-level configuration and data structures
|
||||
- `source/USB/` - USB device implementation
|
||||
- `source/Graphics/` - Display graphics and UI
|
||||
- `source/Fonts/` - Font data and localization
|
||||
- `source/Loader/` - Bootloader and flash update functionality
|
||||
- `drivers/` - NXP SDK peripheral drivers
|
||||
- `CMSIS/` - ARM CMSIS headers
|
||||
- `usb/` - USB middleware stack
|
||||
- `Debug/`, `Release/` - Build output directories
|
||||
|
||||
### Key Data Structures
|
||||
|
||||
**ClampData_t** (`source/System/system.h:35`): Core control structure containing:
|
||||
- Slope, voltage, current, impedance measurements
|
||||
- Power regulation parameters
|
||||
- Digital potentiometer settings
|
||||
|
||||
### Development Notes
|
||||
|
||||
- The project uses NXP's MCUXpresso SDK for peripheral drivers
|
||||
- Hardware-specific fixes are isolated in `source/hwFixes.c`
|
||||
- Comprehensive change log maintained in `source/AppChangeLog.txt`
|
||||
- Flash memory layout: Application starts at 0x10000 (64KB offset for bootloader)
|
||||
- Maximum application size: 192KB
|
||||
|
||||
### Testing
|
||||
|
||||
Connect via USB (J7 connector) at 115200 baud for debug console output. The application supports firmware updates through the bootloader system.
|
||||
Reference in New Issue
Block a user