1 // Copyright 2020 The Pigweed Authors
3 // Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 // use this file except in compliance with the License. You may obtain a copy of
7 // https://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 // License for the specific language governing permissions and limitations under
16 package pw.cpu_exception.armv7m;
18 message ArmV7mCpuState {
19 optional uint32 pc = 1;
20 optional uint32 lr = 2;
21 optional uint32 psr = 3;
22 optional uint32 msp = 4;
23 optional uint32 psp = 5;
24 optional uint32 exc_return = 6;
25 optional uint32 cfsr = 7;
26 optional uint32 mmfar = 8;
27 optional uint32 bfar = 9;
28 optional uint32 icsr = 10;
29 optional uint32 hfsr = 25;
30 optional uint32 shcsr = 26;
31 optional uint32 control = 11;
33 // General purpose registers.
34 optional uint32 r0 = 12;
35 optional uint32 r1 = 13;
36 optional uint32 r2 = 14;
37 optional uint32 r3 = 15;
38 optional uint32 r4 = 16;
39 optional uint32 r5 = 17;
40 optional uint32 r6 = 18;
41 optional uint32 r7 = 19;
42 optional uint32 r8 = 20;
43 optional uint32 r9 = 21;
44 optional uint32 r10 = 22;
45 optional uint32 r11 = 23;
46 optional uint32 r12 = 24;