Prusa MINI Firmware overview
unwarmbytab.h
Go to the documentation of this file.
1 /***************************************************************************
2  * ARM Stack Unwinder, Michael.McTernan.2001@cs.bris.ac.uk
3  * Updated, adapted and several bug fixes on 2018 by Eduardo José Tagle
4  *
5  * This program is PUBLIC DOMAIN.
6  * This means that there is no copyright and anyone is able to take a copy
7  * for free and use it as they wish, with or without modifications, and in
8  * any context, commerically or otherwise. The only limitation is that I
9  * don't guarantee that the software is fit for any purpose or accept any
10  * liablity for it's use or misuse - this software is without warranty.
11  ***************************************************************************
12  * File Description: Interface to the memory tracking sub-system.
13  **************************************************************************/
14 
15 #pragma once
16 
17 #include "unwarm.h"
18 
19 typedef struct {
20  uint32_t vrs[16];
21  uint32_t current; /* Address of current byte */
22  int remaining;
23  int byte;
24 } UnwTabState;
25 
26 typedef struct {
27  uint32_t addr_offset;
28  uint32_t insn;
29 } UnwTabEntry;
30 
unwarm.h
UNWIND_FAILURE
Definition: unwinder.h:66
UNW_MAX_INSTR_COUNT
#define UNW_MAX_INSTR_COUNT
Definition: unwarm.h:24
UnwPrintd6
#define UnwPrintd6(a, b, c, d, e, f)
Definition: unwarm.h:122
UnwTabState::current
uint32_t current
Definition: unwarmbytab.h:32
REG_VAL_FROM_STACK
Definition: unwarm.h:38
UnwInvalidateRegisterFile
void UnwInvalidateRegisterFile(RegData *regFile)
UnwState
Definition: unwarm.h:87
UNWIND_DWRITE_W_FAIL
Definition: unwinder.h:93
UnwStartThumb
UnwResult UnwStartThumb(UnwState *const state)
UNWIND_IREAD_W_FAIL
Definition: unwinder.h:75
UnwindCallbacks::readW
bool(* readW)(const uint32_t address, uint32_t *val)
Definition: unwinder.h:132
UnwReport
Definition: unwinder.h:97
UnwPrintd5
#define UnwPrintd5(a, b, c, d, e)
Definition: unwarm.h:121
UnwTabEntry
Definition: unwarmbytab.h:26
UNWIND_EXHAUSTED
Definition: unwinder.h:54
g29_auto.start
start
Definition: g29_auto.py:150
UNWIND_UNSUPPORTED_DWARF_INSTR
Definition: unwinder.h:51
UnwindFrame::lr
uint32_t lr
Definition: unwinder.h:156
__attribute__
bool boolean __attribute__((deprecated))
Definition: wiring_constants.h:110
data
uint8_t data[8]
Definition: masstorage.h:49
UNWIND_MORE_AVAILABLE
Definition: unwinder.h:36
UnwMemWriteRegister
bool UnwMemWriteRegister(UnwState *const state, const uint32_t addr, const RegData *const reg)
state
static volatile fsensor_t state
Definition: filament_sensor.c:23
UnwTabEntry::addr_offset
uint32_t addr_offset
Definition: unwarmbytab.h:27
A
#define A(CODE)
Definition: macros.h:75
UnwTabState::remaining
int remaining
Definition: unwarmbytab.h:33
REG_VAL_FROM_CONST
Definition: unwarm.h:40
UnwindFrame
Definition: unwinder.h:153
UNWIND_INCONSISTENT
Definition: unwinder.h:60
UnwPrintd7
#define UnwPrintd7(a, b, c, d, e, f, g)
Definition: unwarm.h:123
UnwTabEntry::insn
uint32_t insn
Definition: unwarmbytab.h:28
UnwTabState
Definition: unwarmbytab.h:19
REG_VAL_INVALID
Definition: unwarm.h:37
createSpeedLookupTable.end
end
Definition: createSpeedLookupTable.py:33
UnwMemHashGC
void UnwMemHashGC(UnwState *const state)
UnwReportRetAddr
bool UnwReportRetAddr(UnwState *const state, uint32_t addr)
UNWIND_UNSUPPORTED
Definition: unwinder.h:63
UNWIND_REFUSED
Definition: unwinder.h:42
UnwPrintd3
#define UnwPrintd3(a, b, c)
Definition: unwarm.h:119
UNWIND_DREAD_W_FAIL
Definition: unwinder.h:84
UNWIND_IREAD_H_FAIL
Definition: unwinder.h:78
UnwindFrame::fp
uint32_t fp
Definition: unwinder.h:154
UNWIND_UNSUPPORTED_DWARF_PERSONALITY
Definition: unwinder.h:39
UnwPrintd4
#define UnwPrintd4(a, b, c, d)
Definition: unwarm.h:120
UNWIND_DREAD_H_FAIL
Definition: unwinder.h:87
UnwReport::address
uint32_t address
Definition: unwinder.h:100
L
#define L(CODE)
Definition: macros.h:76
UnwTabState::byte
int byte
Definition: unwarmbytab.h:34
UnwTabState::vrs
uint32_t vrs[16]
Definition: unwarmbytab.h:31
REG_VAL_ARITHMETIC
Definition: unwarm.h:41
uint8_t
const uint8_t[]
Definition: 404_html.c:3
UNWIND_RESET
Definition: unwinder.h:72
address
UsbDeviceAddress address
Definition: address.h:202
unwarmbytab.h
M_IsOriginValid
#define M_IsOriginValid(v)
Definition: unwarm.h:104
UnwPrintd8
#define UnwPrintd8(a, b, c, d, e, f, g, h)
Definition: unwarm.h:124
UnwStartArm
UnwResult UnwStartArm(UnwState *const state)
UnwindFrame::pc
uint32_t pc
Definition: unwinder.h:157
UnwReport::function
uint32_t function
Definition: unwinder.h:98
RegValOrigin
RegValOrigin
Definition: unwarm.h:34
UnwReport::name
const char * name
Definition: unwinder.h:99
UnwindCallbacks::report
UnwindReportFunc report
Definition: unwinder.h:122
UNWIND_DREAD_B_FAIL
Definition: unwinder.h:90
UNWIND_SUCCESS
Definition: unwinder.h:33
M_Origin2Str
#define M_Origin2Str(v)
Definition: unwarm.h:105
UnwindCallbacks
Definition: unwinder.h:119
UNWIND_TRUNCATED
Definition: unwinder.h:57
UnwindByTableStart
UnwResult UnwindByTableStart(UnwindFrame *frame, const UnwindCallbacks *cb, void *data)
UnwindFrame::sp
uint32_t sp
Definition: unwinder.h:155
byte
uint8_t byte
Definition: wiring_constants.h:112
UnwPrintd1
#define UnwPrintd1(a)
Definition: unwarm.h:117
UnwResult
UnwResult
Definition: unwinder.h:30
UnwMemReadRegister
bool UnwMemReadRegister(UnwState *const state, const uint32_t addr, RegData *const reg)
UnwPrintd2
#define UnwPrintd2(a, b)
Definition: unwarm.h:118
UNWIND_ILLEGAL_INSTR
Definition: unwinder.h:69