Skip to content

Commit

Permalink
system-resources: added
Browse files Browse the repository at this point in the history
  • Loading branch information
ReinhardKeil committed Feb 7, 2025
1 parent d763432 commit f2a5e27
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 19 deletions.
72 changes: 56 additions & 16 deletions docs/Experimental-Features.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,10 @@ solution:
device: STMicroelectronics::STM32F746NGHx
memory: # Additional memory available in MyHardware
- name: Ext-Flash # Identifier
- access: rx # access permission
- start: 0x40000000
- size: 0x200000
- algorithm: Flash/Ext-Flash.flm # Programming algorithm
access: rx # access permission
start: 0x40000000
size: 0x200000
algorithm: Flash/Ext-Flash.flm # Programming algorithm
```
## Run and Debug Management
Expand Down Expand Up @@ -207,6 +207,10 @@ cbuild-run:
- file: out/CubeMX/MyBoard_ROM/Debug/CubeMX.axf
type: elf
system-resources:
memory:
:
debugger:
- name: CMSIS-DAP
:
Expand All @@ -216,10 +220,46 @@ cbuild-run:
debug-vars:
:
sequences:
debug-sequences:
:
```

### `system-resources:`

The `system-resources:` node lists the resources of a target system. It includes memory from the DFP, BSP, and `memory:` definitions from the `csolution.yml` file.

`system-resources:` | | Content
:---------------------------------------------------------|-------------|:------------------------------------
`- memory:` | Optional | Identifies the section for memory.

`memory:` | | Content
:---------------------------------------------------------|-------------|:------------------------------------
`- name:` |**Required** | Name of the memory region (when PDSC contains id, it uses the id as name).
    `access:` | Optional | Access permission of the memory.
    `start:` | Optional | Base address of the memory.
    `size:` | Optional | Size of the memory.
    `default:` | Optional | Memory is always accessible (used for algorithm when no `ram-start` is specified).
    `startup:` | Optional | Default startup code location (vector table).
    `pname:` | Optional | Only accessible by a specific processor.
    `uninit:` | Optional | Memory content must not be altered.
    `alias:` | Optional | Name of identical memory exposed at different address.
    `from-pack:` | Optional | Pack that defines this memory.

```yml
system-resources:
memory:
- name: ITCM_Flash
access: rx
start: 0x00200000
size: 0x00100000
from-pack: Keil::[email protected]
- name: Ext-Flash
access: rx
start: 0x40000000
size: 0x200000
default: true
```

### `debugger:`

[**Proposal: debugger configuration to YML input**](https://github.com/Open-CMSIS-Pack/devtools/issues/1947)
Expand Down Expand Up @@ -249,40 +289,40 @@ debugger:

### `debug-vars:`

This node contains configuration variables and optionally configuration file for these variables.
This node contains the [debug vars](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/pdsc_family_pg.html#element_sequence) from the DFP for the target.

Q: is the file really required as it is supplied already under debugger:
!!! Note
`pname` is not required as variables are queried by `debug-sequences:`. It is enough when these sequences are `pname`-specific. Currently only one PDSC contains pname (iMX-D7)
`dbgconf` file is exposed under `debugger:`. This allows multiple copies for different debugger connection settings.
Additional node `vars:` is kept to allow for future extensions.

[**Review Proposal: handling of `*.dbgconf` files in RTE**](https://github.com/Open-CMSIS-Pack/devtools/issues/1946)


`debug-vars:` | | Content
:---------------------------------------------------------|--------------|:------------------------------------
    `vars:` | Optional | Initial values for debug variables used in [`sequences:`](#sequences).
    `file:` | Optional | Configuration file for debug variables.
    `vars:` | Optional | Initial values for debug variables used in [`debug-sequences:`](#debug-sequences).

Example:

```yml
debug-vars:
file: RTE/Device/LPC55S69/LPC55xx.dbgconf
vars: |
// Debug Access Variables, can be modified by user via copies of DBGCONF files as created by uVision. Also see sub-family level.
__var SWO_Pin = 0; // Serial Wire Output pin: 0 = PIO0_10, 1 = PIO0_8
__var Dbg_CR = 0x00000000; // DBG_CR
__var BootTime = 10000; // 10 milliseconds
```

### `sequences:`
### `debug-sequences:`

This node contains the [debug sequences](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/pdsc_family_pg.html#element_sequence) from the DFP for the target. These sequences overwrite default parameters.
This node contains the [debug sequences](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/pdsc_family_pg.html#element_sequence) from the DFP for the target. These sequences overwrite default parameters.

`sequences:` | | Content
`debug-sequences:` | | Content
:---------------------------------------------------------|--------------|:------------------------------------
`- name:` | **Required** | Name of the sequence.
    `info:` | Optional | Descriptive text to display for example for error diagnostics.
    `blocks:` | Optional | A list of command blocks in order of execution.
    `pname:` | Optional | Executes sequence only for connection to processor; Default is executed for all connections.
    `pname:` | Optional | Executes sequence only for connection to a specific processor; default is for all processors.

`blocks:` | | Content
:---------------------------------------------------------|--------------|:------------------------------------
Expand All @@ -300,7 +340,7 @@ This node contains the [debug sequences](https://open-cmsis-pack.github.io/Open-
Example: [debugPortSetup](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/debug_description.html#debugPortSetup)

```yml
sequences:
debug-sequences:
- name: DebugPortSetup
blocks:
Expand Down
6 changes: 3 additions & 3 deletions docs/build-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ The diagram below outlines the operation of the `csolution` command `convert` th

Input Files | Description
:------------------------|:---------------------------------
[Generic Software Packs](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/cp_PackTutorial.html#cp_SWComponents) | Provide re-usable software components that are typically configurable towards a user application.
[DFP Software Packs](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/cp_PackTutorial.html#createPack_DFP) | Device-related information (including memory sizes) for the tool configuration.
[BSP Software Packs](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/cp_PackTutorial.html#createPackBoard) | Board specific configuration (i.e. additional memory resources).
[Generic Software Packs](https://www.keil.arm.com/packs/?q=&pack-search=&contents=software_only) | Provide re-usable software components that are typically configurable towards a user application.
[DFP Software Packs](https://www.keil.arm.com/devices) | Device-related information (including memory sizes) for the tool configuration.
[BSP Software Packs](https://www.keil.arm.com/boards) | Board specific configuration (i.e. additional memory resources).
[cdefault.yml](YML-Input-Format.md#cdefault) | When enabled with [`cdefault:`](YML-Input-Format.md#solution), setup of toolchain specific controls and pre-defined toolchains.
[*.csolution.yml](YML-Input-Format.md#solution) | Complete scope of the application with sub-projects. Defines [target](YML-Input-Format.md#target-types) and [build](YML-Input-Format.md#build-types) types.
[*.cproject.yml](YML-Input-Format.md#project) | Content of an independent build step (linker or library archiver run).
Expand Down

0 comments on commit f2a5e27

Please sign in to comment.