Skip to content
Snippets Groups Projects
Commit 02cf96e4 authored by Per Lindgren's avatar Per Lindgren
Browse files

aes experiment

parent 1183f096
No related branches found
No related tags found
No related merge requests found
Showing
with 816 additions and 14 deletions
...@@ -30,5 +30,15 @@ rustflags = [ ...@@ -30,5 +30,15 @@ rustflags = [
"-Z", "linker-flavor=ld", "-Z", "linker-flavor=ld",
] ]
[target.x]
runner = 'arm-none-eabi-gdb'
rustflags = [
"-C", "link-arg=-Tlink.x",
"-C", "linker=arm-none-eabi-ld",
"-Z", "linker-flavor=ld",
]
[build] [build]
target = "thumbv7em-none-eabihf" #target = "thumbv7em-none-eabihf"
\ No newline at end of file target = "x"
.cproject 0 → 100644
This diff is collapsed.
File moved
.project 0 → 100644
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>nucleo-64-rtfm</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.github.rustdt.ide.core.Builder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>com.github.rustdt.ide.core.nature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
</projectDescription>
BOARD=NUCLEO-F401RE
CODE_LOCATION=FLASH
ENDIAN=Little-endian
MCU=STM32F401RE
MCU_VENDOR=STMicroelectronics
MODEL=Lite
PROJECT_FORMAT_VERSION=2
TARGET=ARM\u00AE
VERSION=8.1.0
eclipse.preferences.version=1
eclipse.preferences.version=1
svd_custom_file_path=
svd_file_path=/opt/Atollic_TrueSTUDIO_for_ARM_x86_64_8.1.0/ide/plugins/com.atollic.truestudio.tsp.stm32_1.0.0.20171023-2304/tsp/sfr/STM32F413.svd
build_targets=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\n<build_targets xmlns\="com.github.rustdt.ide.core">\n<target auto_enabled\="false" config\="build" n_enabled\="true" version2\="true">\n<command_invocation append_env\="true" command_arguments\="xargo build --example nested --message-format\=json">\n<env_vars/>\n</command_invocation>\n</target>\n<target auto_enabled\="false" config\="check" n_enabled\="false" version2\="true">\n<command_invocation append_env\="true" command_arguments\="xargo check --example nested --message-format\=json">\n<env_vars/>\n</command_invocation>\n</target>\n<target auto_enabled\="false" config\="clean" n_enabled\="false" version2\="true"/>\n</build_targets>\n
eclipse.preferences.version=1
format_onSave=true
racer_path=/home/pln/.cargo/bin/
rainicorn_path=/home/pln/.cargo/RustDT/bin/parse_describe
rustfmt_path=/home/pln/.cargo/bin/rustfmt
sdk_path=/home/pln/.cargo/
sdk_src_path=/home/pln/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src
toolchain_prefs.use_project_settings=false
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>
<configuration id="com.atollic.truestudio.exe.debug.1881339073" name="Debug">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="793783583106221037" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
<configuration id="com.atollic.truestudio.configuration.release.922451846" name="Release">
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="793783583106221037" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
</extension>
</configuration>
</project>
eclipse.preferences.version=1
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1881339073/CPATH/delimiter=\:
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1881339073/CPATH/operation=remove
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1881339073/C_INCLUDE_PATH/delimiter=\:
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1881339073/C_INCLUDE_PATH/operation=remove
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1881339073/append=true
environment/buildEnvironmentInclude/com.atollic.truestudio.exe.debug.1881339073/appendContributed=true
environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.1881339073/LIBRARY_PATH/delimiter=\:
environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.1881339073/LIBRARY_PATH/operation=remove
environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.1881339073/append=true
environment/buildEnvironmentLibrary/com.atollic.truestudio.exe.debug.1881339073/appendContributed=true
eclipse.preferences.version=1
org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
...@@ -18,18 +18,29 @@ untagged-option = "0.1.1" ...@@ -18,18 +18,29 @@ untagged-option = "0.1.1"
rtfm-core = "0.1.0" rtfm-core = "0.1.0"
cortex-m-rtfm-macros = { path = "macros" } cortex-m-rtfm-macros = { path = "macros" }
[target.'cfg(target_arch = "x86_64")'.dev-dependencies] #[target.'cfg(target_arch = "x86_64")'.dev-dependencies]
compiletest_rs = "0.2.8" #compiletest_rs = "0.2.8"
[dev-dependencies.cortex-m-rt] [dev-dependencies.cortex-m-rt]
features = ["abort-on-panic"] features = ["abort-on-panic"]
version = "0.3.3" version = "0.3.3"
[dev-dependencies.stm32f40x] #[dev-dependencies.stm32f40x]
git = "https://gitlab.henriktjader.com/pln/STM32F40x" #git = "https://gitlab.henriktjader.com/pln/STM32F40x"
#features = ["rt"]
#version = "0.1.0"
[dev-dependencies.stm32f413]
#path = "/home/pln/rtfm/stm32f413"
git = "https://gitlab.henriktjader.com/pln/stm32f413"
features = ["rt"] features = ["rt"]
version = "0.1.0" version = "0.1.0"
[dev-dependencies.cortex-m-debug]
path = "/home/pln/rtfm/cortex-m-debug"
version = "0.1.0"
[features] [features]
wcet_bkpt = [] wcet_bkpt = []
wcet_nop = [] wcet_nop = []
......
arch linux
tools
GNU gdb (GDB) 8.0.1
GNU ld (GNU Binutils) 2.29.1
Open On-Chip Debugger 0.10.0+dev-00226-g1c2e3d41d (2017-12-21-21:14)
make rust work
rustup default nightly
install atollic
(commented out licence server and dependency)
https://forum.atollic.com/viewtopic.php?f=3&t=943
RustDT
-- problems
problem, no licence manager, should we use usb or floating (guess floating)
-- problems and questions
1 can we get floating licence for reasearch/development (with full features)
1.1 for now the arm-atollic-eabi-gdb is replaced by /usr/bin/arm-none-eabi-gdb, but maybe with a full version this can be fixed by a proper setting
yes, we need a newer version of gdb as the pretty printing for Rust structs is much better
2 cannot restart debugging (nothing happens), in fact the one need to Terminate and Remove, not even Terminate and Relaunch works
2.1
workaround, do not exit debugger, just `load` in gdb), use a script `r` (for reload) for that and `so r` in the gdb console
the content of `r` is:
set confirm off
mon reset init
load
mon reset init
3 ITM debugging
-- general comments
1 good use of the eclipse platform (works in general better than GNU ARM Eclipse)
2 nice SFR support (works even well with tiling wms)
3 poor gdb prompt (as of gdb 8 it should be possible to get tabbing to work... that would be a huge boost in productivity)
4 nice that gdb prompt is (usuall) synchronized with eclipse debug views (source/assembly)
4.1 when scrolling the disassm view the current pc is lost (needs to be updated in view)
...@@ -2,18 +2,24 @@ ...@@ -2,18 +2,24 @@
//! //!
//! If you run this program you'll hit the breakpoints as indicated by the //! If you run this program you'll hit the breakpoints as indicated by the
//! letters in the comments: A, then B, then C, etc. //! letters in the comments: A, then B, then C, etc.
#![deny(unsafe_code)] //#![deny(unsafe_code)]
#![feature(proc_macro)] #![feature(proc_macro)]
#![no_std] #![no_std]
//extern crate bare_metal;
//#[macro_use]
extern crate cortex_m;
#[macro_use]
extern crate cortex_m_debug;
extern crate cortex_m_rtfm as rtfm; extern crate cortex_m_rtfm as rtfm;
extern crate stm32f40x; extern crate stm32f413;
use stm32f40x::Interrupt; use stm32f413::Interrupt;
use rtfm::{app, Resource, Threshold}; use rtfm::{app, Resource, Threshold};
app! { app! {
device: stm32f40x, device: stm32f413,
resources: { resources: {
static LOW: u64 = 0; static LOW: u64 = 0;
...@@ -41,11 +47,197 @@ app! { ...@@ -41,11 +47,197 @@ app! {
}, },
} }
fn init(_p: init::Peripherals, _r: init::Resources) {} fn wait(v: u32) {
for i in 0..v {
rtfm::nop();
}
}
fn init(p: init::Peripherals, _r: init::Resources) {
rtfm::bkpt();
ipln!("start");
// enable clocking of AES
p.RCC.ahb2enr.write(|w| w.crypen().set_bit());
// errata, device might not be ready
// rtfm::dsb(); // not implemented/exported
wait(1000);
// test key derivation
let key = 0x11111111;
// p.AES.cr.write(|w| w); // set default
p.AES.cr.write(|w| unsafe { w.mode().bits(0b01) });
p.AES.keyr0.write(|w| unsafe { w.bits(key) });
p.AES.keyr1.write(|w| unsafe { w.bits(key) });
p.AES.keyr2.write(|w| unsafe { w.bits(key) });
p.AES.keyr3.write(|w| unsafe { w.bits(key) });
p.AES.cr.modify(|_, w| w.en().set_bit());
// wait until processing complete
let mut r = 0;
while p.AES.sr.read().ccf().bit_is_clear() {
r += 1;
}
ipln!("wait {}", r);
let d0 = p.AES.keyr0.read().bits();
let d1 = p.AES.keyr1.read().bits();
let d2 = p.AES.keyr2.read().bits();
let d3 = p.AES.keyr3.read().bits();
ipln!("d0 {:08x}", d0);
ipln!("d1 {:08x}", d1);
ipln!("d2 {:08x}", d2);
ipln!("d3 {:08x}", d3);
// reset state
// KEYSIZE 128
// NO DMA
// NO ERR
// MODE 00 = Mode 1 Encryption
// NO Swapping
// 128 bit key, 4 * 32 bit
// we set it to
// 00 01 02 03
// 0x0000_00001__0000_00001__0000_00001__0000_00001
// ipln!("{}", p.AES.keyr0.read().bits());
// Mode 1: encryption using the encryption key stored in the AES_KEYRx registers.
// write the raw data to be encrypted
p.AES.cr.write(|w| w.ccfc().set_bit()); // clear complete and disable AES;
// rtfm::bkpt();
// default is to encrypt (Mode 1)
p.AES.keyr0.write(|w| unsafe { w.bits(key) });
p.AES.keyr1.write(|w| unsafe { w.bits(key) });
p.AES.keyr2.write(|w| unsafe { w.bits(key) });
p.AES.keyr3.write(|w| unsafe { w.bits(key) });
p.AES.cr.modify(|_, w| w.en().set_bit());
let data = 0x11111111;
for _ in 0..4 {
p.AES.dinr.write(|w| unsafe { w.bits(data) });
}
// wait until processing complete
let mut r = 0;
while p.AES.sr.read().ccf().bit_is_clear() {
r += 1;
}
ipln!("wait {}", r);
// read the encrypted data
let c0 = p.AES.doutr.read().bits();
let c1 = p.AES.doutr.read().bits();
let c2 = p.AES.doutr.read().bits();
let c3 = p.AES.doutr.read().bits();
ipln!("c0 {:08x}", c0);
ipln!("c1 {:08x}", c1);
ipln!("c2 {:08x}", c2);
ipln!("c3 {:08x}", c3);
// change to decipher, mode 4 key auto derive
p.AES.cr.write(|w| w.en().clear_bit()); // disable AES;
p.AES.cr.write(|w| w.ccfc().set_bit()); // clear complete
p.AES.cr.write(|w| unsafe { w.mode().bits(0b11) }); // set mode 3
p.AES.keyr0.write(|w| unsafe { w.bits(key) });
p.AES.keyr1.write(|w| unsafe { w.bits(key) });
p.AES.keyr2.write(|w| unsafe { w.bits(key) });
p.AES.keyr3.write(|w| unsafe { w.bits(key) });
p.AES.cr.modify(|_, w| w.en().set_bit()); // enable AES
// Mode 3: dencryption using the encryption key stored in the AES_KEYRx registers.
// write the encrypted data
p.AES.dinr.write(|w| unsafe { w.bits(c0) });
p.AES.dinr.write(|w| unsafe { w.bits(c1) });
p.AES.dinr.write(|w| unsafe { w.bits(c2) });
p.AES.dinr.write(|w| unsafe { w.bits(c3) });
let mut r = 0;
while p.AES.sr.read().ccf().bit_is_clear() {
r += 1;
}
ipln!("wait {}", r);
let r0 = p.AES.doutr.read().bits();
let r1 = p.AES.doutr.read().bits();
let r2 = p.AES.doutr.read().bits();
let r3 = p.AES.doutr.read().bits();
let sr = p.AES.sr.read();
ipln!(
"status rderr {}, wrerr {}",
sr.rderr().bit(),
sr.wrerr().bit()
);
ipln!("r0 {:08x}", r0);
ipln!("r1 {:08x}", r1);
ipln!("r2 {:08x}", r2);
ipln!("r3 {:08x}", r3);
rtfm::bkpt();
// change to decipher, mode 3 decode
p.AES.cr.write(|w| w.ccfc().set_bit()); // clear complete and disable AES;
p.AES.cr.write(|w| unsafe { w.mode().bits(0b10) }); // set mode 3
p.AES.keyr0.write(|w| unsafe { w.bits(d0) });
p.AES.keyr1.write(|w| unsafe { w.bits(d1) });
p.AES.keyr2.write(|w| unsafe { w.bits(d2) });
p.AES.keyr3.write(|w| unsafe { w.bits(d3) });
p.AES.cr.modify(|_, w| w.en().set_bit()); // enable AES
// Mode 3: dencryption using the encryption key stored in the AES_KEYRx registers.
// write the encrypted data
p.AES.dinr.write(|w| unsafe { w.bits(c0) });
p.AES.dinr.write(|w| unsafe { w.bits(c1) });
p.AES.dinr.write(|w| unsafe { w.bits(c2) });
p.AES.dinr.write(|w| unsafe { w.bits(c3) });
let mut r = 0;
while p.AES.sr.read().ccf().bit_is_clear() {
r += 1;
}
ipln!("wait {}", r);
let r0 = p.AES.doutr.read().bits();
let r1 = p.AES.doutr.read().bits();
let r2 = p.AES.doutr.read().bits();
let r3 = p.AES.doutr.read().bits();
let sr = p.AES.sr.read();
ipln!(
"status rderr {}, wrerr {}",
sr.rderr().bit(),
sr.wrerr().bit()
);
ipln!("r0 {:08x}", r0);
ipln!("r1 {:08x}", r1);
ipln!("r2 {:08x}", r2);
ipln!("r3 {:08x}", r3);
rtfm::bkpt();
}
enum A {
A1,
A2,
}
#[inline(never)] #[inline(never)]
fn idle() -> ! { fn idle() -> ! {
// A // A
let a = A::A1;
let b = A::A2;
let c = a;
let d = b;
rtfm::bkpt(); rtfm::bkpt();
// Sets task `exti0` as pending // Sets task `exti0` as pending
...@@ -60,10 +252,7 @@ fn idle() -> ! { ...@@ -60,10 +252,7 @@ fn idle() -> ! {
} }
#[allow(non_snake_case)] #[allow(non_snake_case)]
fn exti0( fn exti0(t: &mut Threshold, EXTI0::Resources { mut LOW, mut HIGH }: EXTI0::Resources) {
t: &mut Threshold,
EXTI0::Resources { mut LOW, mut HIGH }: EXTI0::Resources,
) {
// Because this task has a priority of 1 the preemption threshold `t` also // Because this task has a priority of 1 the preemption threshold `t` also
// starts at 1 // starts at 1
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.atollic.hardwaredebug.launch.launchConfigurationType">
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.cpu_core" value="Cortex-M"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.device" value=""/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.endian" value="little"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.init_speed" value="4000"/>
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_check_serial_number" value="false"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_script_path" value=""/>
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_script_used" value="false"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_trace_port_cfg_path" value=""/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_txt_serial_number" value=""/>
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_auto" value="true"/>
<intAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_irpre" value="0"/>
<intAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_pos" value="0"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.selected_rtos" value="No RTOS"/>
<intAttribute key="com.atollic.hardwaredebug.launch.formatVersion" value="2"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.hwinitCommands" value="# Initialize your hardware here&#10;# monitor reset init&#10;&#10;# reset init for the stm32f4x.cfg sets the CPU in 64MHz&#10;# monitor tpiu config internal /tmp/itm.log uart off 64000000&#10;# monitor itm port 0 on"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.ipAddress" value="localhost"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.jtagDevice" value="OpenOCD"/>
<intAttribute key="com.atollic.hardwaredebug.launch.portNumber" value="3333"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.remoteCommand" value="target remote"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.runCommands" value="monitor tpiu config internal /tmp/itm.log uart off 16000000&#10;monitor itm port 0 on&#10;&#10;# Load the program executable&#10;# monitor reset init&#10;load&#10;monitor reset &#10;#info breakpoints&#10;# Set a breakpoint at main().&#10;#tbreak main&#10;&#10;# Run to the breakpoint.&#10;# continue&#10;&#10;&#10;"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.serverParam" value=""/>
<booleanAttribute key="com.atollic.hardwaredebug.launch.startServer" value="false"/>
<booleanAttribute key="com.atollic.hardwaredebug.launch.swd_mode" value="false"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_port" value="2332"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_trace_div" value="0"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_trace_hclk" value="8000000"/>
<intAttribute key="com.atollic.hardwaredebug.launch.trace_system" value="0"/>
<booleanAttribute key="com.atollic.hardwaredebug.launch.useRemoteTarget" value="true"/>
<stringAttribute key="com.atollic.hardwaredebug.openocd.server_target" value="remote"/>
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${TOOLCHAIN_PATH}/arm-atollic-eabi-gdb"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="1"/>
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="target/x/debug/examples/nested.elf"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="nucleo-64-rtfm/"/>
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/nucleo-64-rtfm"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
</listAttribute>
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;&#10;"/>
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.atollic.hardwaredebug.launch.launchConfigurationType">
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.cpu_core" value="Cortex-M"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.device" value=""/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.endian" value="little"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.init_speed" value="4000"/>
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_check_serial_number" value="false"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_script_path" value=""/>
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_script_used" value="false"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_trace_port_cfg_path" value=""/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_txt_serial_number" value=""/>
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_auto" value="true"/>
<intAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_irpre" value="0"/>
<intAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_pos" value="0"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.selected_rtos" value="No RTOS"/>
<intAttribute key="com.atollic.hardwaredebug.launch.formatVersion" value="2"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.hwinitCommands" value="# Initialize your hardware here&#10;# monitor reset init&#10;&#10;# reset init for the stm32f4x.cfg sets the CPU in 64MHz&#10;# monitor tpiu config internal /tmp/itm.log uart off 64000000&#10;# monitor itm port 0 on"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.ipAddress" value="localhost"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.jtagDevice" value="OpenOCD"/>
<intAttribute key="com.atollic.hardwaredebug.launch.portNumber" value="3333"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.remoteCommand" value="target remote"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.runCommands" value="monitor tpiu config internal /tmp/itm.log uart off 64000000&#10;monitor itm port 0 on&#10;&#10;# Load the program executable&#10;# monitor reset init&#10;load&#10;monitor reset init&#10;#info breakpoints&#10;# Set a breakpoint at main().&#10;#tbreak main&#10;&#10;# Run to the breakpoint.&#10;# continue&#10;&#10;&#10;"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.serverParam" value=""/>
<booleanAttribute key="com.atollic.hardwaredebug.launch.startServer" value="false"/>
<booleanAttribute key="com.atollic.hardwaredebug.launch.swd_mode" value="false"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_port" value="2332"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_trace_div" value="0"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_trace_hclk" value="8000000"/>
<intAttribute key="com.atollic.hardwaredebug.launch.trace_system" value="0"/>
<booleanAttribute key="com.atollic.hardwaredebug.launch.useRemoteTarget" value="true"/>
<stringAttribute key="com.atollic.hardwaredebug.openocd.server_target" value="remote"/>
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${TOOLCHAIN_PATH}/arm-atollic-eabi-gdb"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="1"/>
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="target/x/release/examples/nested.elf"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="nucleo-64-rtfm/"/>
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/nucleo-64-rtfm"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
</listAttribute>
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;&#10;"/>
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
</launchConfiguration>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="com.atollic.hardwaredebug.launch.launchConfigurationType">
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.cpu_core" value="Cortex-M"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.device" value=""/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.endian" value="little"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.init_speed" value="4000"/>
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_check_serial_number" value="false"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_script_path" value=""/>
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_script_used" value="false"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_trace_port_cfg_path" value=""/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.jlink_txt_serial_number" value=""/>
<booleanAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_auto" value="true"/>
<intAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_irpre" value="0"/>
<intAttribute key="com.atollic.hardwaredebug.jlink_common.scan_chain_pos" value="0"/>
<stringAttribute key="com.atollic.hardwaredebug.jlink_common.selected_rtos" value="No RTOS"/>
<intAttribute key="com.atollic.hardwaredebug.launch.formatVersion" value="2"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.hwinitCommands" value="# Initialize your hardware here&#10;# monitor reset init&#10;&#10;# reset init for the stm32f4x.cfg sets the CPU in 64MHz&#10;# monitor tpiu config internal /tmp/itm.log uart off 64000000&#10;# monitor itm port 0 on"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.ipAddress" value="localhost"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.jtagDevice" value="OpenOCD"/>
<intAttribute key="com.atollic.hardwaredebug.launch.portNumber" value="3333"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.remoteCommand" value="target remote"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.runCommands" value="monitor tpiu config internal /tmp/itm.log uart off 64000000&#10;monitor itm port 0 on&#10;&#10;# Load the program executable&#10;# monitor reset init&#10;load&#10;monitor reset init&#10;#info breakpoints&#10;# Set a breakpoint at main().&#10;#tbreak main&#10;&#10;# Run to the breakpoint.&#10;# continue&#10;&#10;&#10;"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.serverParam" value=""/>
<booleanAttribute key="com.atollic.hardwaredebug.launch.startServer" value="false"/>
<booleanAttribute key="com.atollic.hardwaredebug.launch.swd_mode" value="false"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_port" value="2332"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_trace_div" value="0"/>
<stringAttribute key="com.atollic.hardwaredebug.launch.swv_trace_hclk" value="8000000"/>
<intAttribute key="com.atollic.hardwaredebug.launch.trace_system" value="0"/>
<booleanAttribute key="com.atollic.hardwaredebug.launch.useRemoteTarget" value="true"/>
<stringAttribute key="com.atollic.hardwaredebug.openocd.server_target" value="remote"/>
<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${TOOLCHAIN_PATH}/arm-atollic-eabi-gdb"/>
<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="1"/>
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="target/x/debug/examples/nested.elf"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="nucleo-64-rtfm/"/>
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/nucleo-64-rtfm"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
</listAttribute>
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;&#10;"/>
<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
</launchConfiguration>
r 0 → 100644
# monitor reset init
load
monitor reset init
# monitor tpiu config internal /tmp/itm.log uart off 64000000
# monitor itm port 0 on
\ No newline at end of file
x.json 0 → 100644
{
"abi-blacklist": [
"stdcall",
"fastcall",
"vectorcall",
"thiscall",
"win64",
"sysv64"
],
"arch": "arm",
"data-layout": "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64",
"env": "",
"executables": true,
"is-builtin": true,
"linker": "arm-none-eabi-gcc",
"linker-flavor": "gcc",
"llvm-target": "thumbv7m-none-eabi",
"max-atomic-width": 32,
"os": "none",
"panic-strategy": "abort",
"relocation-model": "static",
"target-c-int-width": "32",
"target-endian": "little",
"target-pointer-width": "32",
"vendor": "",
"exe-suffix": ".elf"
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment