diff --git a/documentation/source/_ignore/draw_boot.ipynb b/documentation/source/_ignore/draw_boot.ipynb
index 4fc7c83..6641930 100644
--- a/documentation/source/_ignore/draw_boot.ipynb
+++ b/documentation/source/_ignore/draw_boot.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 50,
+ "execution_count": 180,
"metadata": {},
"outputs": [],
"source": [
@@ -20,41 +20,7 @@
},
{
"cell_type": "code",
- "execution_count": 51,
- "metadata": {},
- "outputs": [],
- "source": [
- "import pandas as pd\n",
- "data = pd.read_csv('stack_and_functions.csv')\n",
- "\n",
- "def convert_to_int(value):\n",
- " try:\n",
- " if isinstance(value, str) and value.startswith('0x'):\n",
- " return int(value, 16)\n",
- " else:\n",
- " return int(value)\n",
- " except ValueError:\n",
- " return value \n",
- "\n",
- "data.sort_values(by=['start'], inplace=True)\n",
- "data['start'] = data['start'].apply(convert_to_int)\n",
- "data['end'] = data['end'].apply(convert_to_int)\n",
- "\n",
- "# Check for overlapping ranges, annotatie row with overlap\n",
- "data['overlap'] = False\n",
- "for i, row in data.iterrows():\n",
- " for j, row2 in data.iterrows():\n",
- " if i == j:\n",
- " continue\n",
- " if row['start'] < row2['end'] and row['end'] > row2['start']:\n",
- " data.at[i, 'overlap'] = True\n",
- " data.at[j, 'overlap'] = True\n",
- " data.at[i, 'overlap_with'] = j"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 52,
+ "execution_count": 197,
"metadata": {},
"outputs": [
{
@@ -85,6 +51,7 @@
"
comment | \n",
" overlap | \n",
" overlap_with | \n",
+ " size | \n",
" \n",
" \n",
" \n",
@@ -96,7 +63,8 @@
" NaN | \n",
" NaN | \n",
" True | \n",
- " 4.0 | \n",
+ " 0.0 | \n",
+ " 131072 | \n",
" \n",
" \n",
" 1 | \n",
@@ -107,6 +75,7 @@
" NaN | \n",
" True | \n",
" 0.0 | \n",
+ " 20480 | \n",
"
\n",
" \n",
" 2 | \n",
@@ -117,6 +86,7 @@
" NaN | \n",
" True | \n",
" 0.0 | \n",
+ " 20480 | \n",
"
\n",
" \n",
" 3 | \n",
@@ -127,6 +97,7 @@
" NaN | \n",
" True | \n",
" 0.0 | \n",
+ " 20480 | \n",
"
\n",
" \n",
" 4 | \n",
@@ -137,6 +108,7 @@
" NaN | \n",
" True | \n",
" 0.0 | \n",
+ " 20480 | \n",
"
\n",
" \n",
" 5 | \n",
@@ -146,7 +118,8 @@
" NaN | \n",
" NaN | \n",
" False | \n",
- " NaN | \n",
+ " 5.0 | \n",
+ " 20480 | \n",
"
\n",
" \n",
" 6 | \n",
@@ -156,7 +129,8 @@
" NaN | \n",
" NaN | \n",
" False | \n",
- " NaN | \n",
+ " 6.0 | \n",
+ " 8 | \n",
"
\n",
" \n",
" 7 | \n",
@@ -165,92 +139,158 @@
" Event buffer pointer | \n",
" NaN | \n",
" NaN | \n",
- " True | \n",
- " 8.0 | \n",
+ " False | \n",
+ " 7.0 | \n",
+ " 20480 | \n",
"
\n",
" \n",
" 8 | \n",
- " 33691648 | \n",
- " 33712128 | \n",
- " BL1 pointer | \n",
- " NaN | \n",
- " NaN | \n",
- " True | \n",
- " 7.0 | \n",
- "
\n",
- " \n",
- " 9 | \n",
" 33984512 | \n",
" 34004992 | \n",
" First debugger location | \n",
" NaN | \n",
" NaN | \n",
" True | \n",
- " 10.0 | \n",
+ " 9.0 | \n",
+ " 20480 | \n",
"
\n",
" \n",
- " 10 | \n",
+ " 9 | \n",
" 33992704 | \n",
" 34013184 | \n",
" End of memory stack | \n",
" NaN | \n",
" NaN | \n",
" True | \n",
- " 9.0 | \n",
+ " 8.0 | \n",
+ " 20480 | \n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " start end name order comment \\\n",
- "0 0 131072 BootROM NaN NaN \n",
- "1 704 21184 BL1 boot entry point ENTRY NaN \n",
- "2 25824 46304 Boot USB function NaN NaN \n",
- "3 75848 96328 bootrom authentication function NaN NaN \n",
- "4 103184 123664 BL1 boot function NaN NaN \n",
- "5 2146304 2166784 Frederic Destination pointer NaN NaN \n",
- "6 33689440 33689448 Boot USB return address NaN NaN \n",
- "7 33691000 33711480 Event buffer pointer NaN NaN \n",
- "8 33691648 33712128 BL1 pointer NaN NaN \n",
- "9 33984512 34004992 First debugger location NaN NaN \n",
- "10 33992704 34013184 End of memory stack NaN NaN \n",
+ " start end name order comment \\\n",
+ "0 0 131072 BootROM NaN NaN \n",
+ "1 704 21184 BL1 boot entry point ENTRY NaN \n",
+ "2 25824 46304 Boot USB function NaN NaN \n",
+ "3 75848 96328 bootrom authentication function NaN NaN \n",
+ "4 103184 123664 BL1 boot function NaN NaN \n",
+ "5 2146304 2166784 Frederic Destination pointer NaN NaN \n",
+ "6 33689440 33689448 Boot USB return address NaN NaN \n",
+ "7 33691000 33711480 Event buffer pointer NaN NaN \n",
+ "8 33984512 34004992 First debugger location NaN NaN \n",
+ "9 33992704 34013184 End of memory stack NaN NaN \n",
"\n",
- " overlap overlap_with \n",
- "0 True 4.0 \n",
- "1 True 0.0 \n",
- "2 True 0.0 \n",
- "3 True 0.0 \n",
- "4 True 0.0 \n",
- "5 False NaN \n",
- "6 False NaN \n",
- "7 True 8.0 \n",
- "8 True 7.0 \n",
- "9 True 10.0 \n",
- "10 True 9.0 "
+ " overlap overlap_with size \n",
+ "0 True 0.0 131072 \n",
+ "1 True 0.0 20480 \n",
+ "2 True 0.0 20480 \n",
+ "3 True 0.0 20480 \n",
+ "4 True 0.0 20480 \n",
+ "5 False 5.0 20480 \n",
+ "6 False 6.0 8 \n",
+ "7 False 7.0 20480 \n",
+ "8 True 9.0 20480 \n",
+ "9 True 8.0 20480 "
]
},
- "execution_count": 52,
+ "execution_count": 197,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
+ "import pandas as pd\n",
+ "data = pd.read_csv('stack_and_functions.csv')\n",
+ "\n",
+ "def convert_to_int(value):\n",
+ " try:\n",
+ " if isinstance(value, str) and value.startswith('0x'):\n",
+ " return int(value, 16)\n",
+ " else:\n",
+ " return int(value)\n",
+ " except ValueError:\n",
+ " return value \n",
+ "\n",
+ "data.sort_values(by=['start'], inplace=True)\n",
+ "data['start'] = data['start'].apply(convert_to_int)\n",
+ "data['end'] = data['end'].apply(convert_to_int)\n",
+ "data['overlap'] = False\n",
+ "\n",
+ "for i, row in data.iterrows():\n",
+ " for j, row2 in data.iterrows():\n",
+ " if i == j:\n",
+ " continue\n",
+ " if row['start'] < row2['end'] and row['end'] > row2['start']:\n",
+ " if row['end'] - row['start'] > row2['end'] - row2['start']:\n",
+ " continue\n",
+ " data.at[i, 'overlap'] = True\n",
+ " data.at[j, 'overlap'] = True\n",
+ " data.at[i, 'overlap_with'] = j\n",
+ "\n",
+ "data['overlap_with'] = data['overlap_with'].fillna(data.index.to_series())\n",
+ "data['overlap_with'] = data['overlap_with'].astype(float)\n",
+ "data['size'] = data['end'] - data['start']\n",
+ "\n",
"data"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": 239,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "np.int64(34013184)"
+ ]
+ },
+ "execution_count": 239,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data['end'].iloc[-1]"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "Create stacked block diagram"
+ "Inherent stacked block diagram"
]
},
{
"cell_type": "code",
- "execution_count": 53,
+ "execution_count": 242,
"metadata": {},
"outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "8.0\n",
+ "1.25\n",
+ "1.25\n",
+ "1.25\n",
+ "1.25\n",
+ "inf\n",
+ "inf\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/tmp/ipykernel_16763/1983735317.py:29: RuntimeWarning:\n",
+ "\n",
+ "divide by zero encountered in scalar divide\n",
+ "\n"
+ ]
+ },
{
"data": {
"application/vnd.plotly.v1+json": {
@@ -260,7 +300,7 @@
"data": [
{
"marker": {
- "color": "#2b5c62"
+ "color": "#ce2c3c"
},
"mode": "text",
"name": "BootROM",
@@ -268,15 +308,15 @@
"textposition": "middle center",
"type": "scatter",
"x": [
- 1.5
+ 2
],
"y": [
- 2.2856563094483198
+ 0.5
]
},
{
"marker": {
- "color": "#c3bb78"
+ "color": "#ee6511"
},
"mode": "text",
"name": "BL1 boot entry point",
@@ -284,15 +324,15 @@
"textposition": "middle center",
"type": "scatter",
"x": [
- 0.5
+ 2
],
"y": [
- 4.928446417247939
+ 1.52
]
},
{
"marker": {
- "color": "#086666"
+ "color": "#157424"
},
"mode": "text",
"name": "Boot USB function",
@@ -300,15 +340,15 @@
"textposition": "middle center",
"type": "scatter",
"x": [
- 1.5
+ 2
],
"y": [
- 5.64271401395054
+ 2.52
]
},
{
"marker": {
- "color": "#9744a8"
+ "color": "#879ab3"
},
"mode": "text",
"name": "bootrom authentication function",
@@ -316,15 +356,15 @@
"textposition": "middle center",
"type": "scatter",
"x": [
- 1.5
+ 2
],
"y": [
- 6.356981610653138
+ 3.52
]
},
{
"marker": {
- "color": "#331fdf"
+ "color": "#a4cd2c"
},
"mode": "text",
"name": "BL1 boot function",
@@ -332,15 +372,15 @@
"textposition": "middle center",
"type": "scatter",
"x": [
- 1.5
+ 2
],
"y": [
- 7.07124920735574
+ 4.52
]
},
{
"marker": {
- "color": "#972c60"
+ "color": "#1b44e8"
},
"mode": "text",
"name": "Frederic Destination pointer",
@@ -348,15 +388,15 @@
"textposition": "middle center",
"type": "scatter",
"x": [
- 1.5
+ 2
],
"y": [
- 7.7855168040583385
+ 5.5
]
},
{
"marker": {
- "color": "#2c2ca0"
+ "color": "#8be123"
},
"mode": "text",
"name": "Boot USB return address",
@@ -364,15 +404,15 @@
"textposition": "middle center",
"type": "scatter",
"x": [
- 1.5
+ 2
],
"y": [
- 8.14279010779962
+ 6.5
]
},
{
"marker": {
- "color": "#d1058f"
+ "color": "#d82002"
},
"mode": "text",
"name": "Event buffer pointer",
@@ -380,31 +420,15 @@
"textposition": "middle center",
"type": "scatter",
"x": [
- 1.5
+ 2
],
"y": [
- 8.500063411540902
+ 7.5
]
},
{
"marker": {
- "color": "#7d4052"
- },
- "mode": "text",
- "name": "BL1 pointer",
- "text": "BL1 pointer",
- "textposition": "middle center",
- "type": "scatter",
- "x": [
- 1.5
- ],
- "y": [
- 9.2143310082435
- ]
- },
- {
- "marker": {
- "color": "#e8bcfa"
+ "color": "#b60e34"
},
"mode": "text",
"name": "First debugger location",
@@ -412,15 +436,15 @@
"textposition": "middle center",
"type": "scatter",
"x": [
- 1.5
+ 2
],
"y": [
- 9.928598604946101
+ 8.52
]
},
{
"marker": {
- "color": "#81a246"
+ "color": "#4c0da0"
},
"mode": "text",
"name": "End of memory stack",
@@ -428,10 +452,10 @@
"textposition": "middle center",
"type": "scatter",
"x": [
- 1.5
+ 2
],
"y": [
- 10.6428662016487
+ 9.52
]
}
],
@@ -454,7 +478,20 @@
},
"shapes": [
{
- "fillcolor": "#2b5c62",
+ "fillcolor": "#ce2c3c",
+ "layer": "below",
+ "line": {
+ "width": 2
+ },
+ "opacity": 0.5,
+ "type": "rect",
+ "x0": 0.9,
+ "x1": 3.1,
+ "y0": 0.05,
+ "y1": 4.95
+ },
+ {
+ "fillcolor": "#ee6511",
"layer": "below",
"line": {
"width": 2
@@ -462,25 +499,12 @@
"opacity": 0.5,
"type": "rect",
"x0": 1,
- "x1": 2,
- "y0": 0,
- "y1": 4.5713126188966395
+ "x1": 3,
+ "y0": 1.07,
+ "y1": 1.92
},
{
- "fillcolor": "#c3bb78",
- "layer": "below",
- "line": {
- "width": 2
- },
- "opacity": 0.5,
- "type": "rect",
- "x0": 0,
- "x1": 1,
- "y0": 4.5713126188966395,
- "y1": 5.285580215599239
- },
- {
- "fillcolor": "#086666",
+ "fillcolor": "#157424",
"layer": "below",
"line": {
"width": 2
@@ -488,12 +512,12 @@
"opacity": 0.5,
"type": "rect",
"x0": 1,
- "x1": 2,
- "y0": 5.285580215599239,
- "y1": 5.999847812301839
+ "x1": 3,
+ "y0": 2.07,
+ "y1": 2.92
},
{
- "fillcolor": "#9744a8",
+ "fillcolor": "#879ab3",
"layer": "below",
"line": {
"width": 2
@@ -501,12 +525,12 @@
"opacity": 0.5,
"type": "rect",
"x0": 1,
- "x1": 2,
- "y0": 5.999847812301839,
- "y1": 6.714115409004439
+ "x1": 3,
+ "y0": 3.07,
+ "y1": 3.92
},
{
- "fillcolor": "#331fdf",
+ "fillcolor": "#a4cd2c",
"layer": "below",
"line": {
"width": 2
@@ -514,12 +538,12 @@
"opacity": 0.5,
"type": "rect",
"x0": 1,
- "x1": 2,
- "y0": 6.714115409004439,
- "y1": 7.428383005707039
+ "x1": 3,
+ "y0": 4.069999999999999,
+ "y1": 4.92
},
{
- "fillcolor": "#972c60",
+ "fillcolor": "#1b44e8",
"layer": "below",
"line": {
"width": 2
@@ -527,12 +551,12 @@
"opacity": 0.5,
"type": "rect",
"x0": 1,
- "x1": 2,
- "y0": 7.428383005707039,
- "y1": 8.142650602409638
+ "x1": 3,
+ "y0": 5.05,
+ "y1": 5.95
},
{
- "fillcolor": "#2c2ca0",
+ "fillcolor": "#8be123",
"layer": "below",
"line": {
"width": 2
@@ -540,12 +564,12 @@
"opacity": 0.5,
"type": "rect",
"x0": 1,
- "x1": 2,
- "y0": 8.142650602409638,
- "y1": 8.142929613189601
+ "x1": 3,
+ "y0": 6.05,
+ "y1": 6.95
},
{
- "fillcolor": "#d1058f",
+ "fillcolor": "#d82002",
"layer": "below",
"line": {
"width": 2
@@ -553,12 +577,12 @@
"opacity": 0.5,
"type": "rect",
"x0": 1,
- "x1": 2,
- "y0": 8.142929613189601,
- "y1": 8.8571972098922
+ "x1": 3,
+ "y0": 7.05,
+ "y1": 7.95
},
{
- "fillcolor": "#7d4052",
+ "fillcolor": "#b60e34",
"layer": "below",
"line": {
"width": 2
@@ -566,12 +590,12 @@
"opacity": 0.5,
"type": "rect",
"x0": 1,
- "x1": 2,
- "y0": 8.8571972098922,
- "y1": 9.5714648065948
+ "x1": 3,
+ "y0": 8.07,
+ "y1": 8.92
},
{
- "fillcolor": "#e8bcfa",
+ "fillcolor": "#4c0da0",
"layer": "below",
"line": {
"width": 2
@@ -579,22 +603,9 @@
"opacity": 0.5,
"type": "rect",
"x0": 1,
- "x1": 2,
- "y0": 9.5714648065948,
- "y1": 10.2857324032974
- },
- {
- "fillcolor": "#81a246",
- "layer": "below",
- "line": {
- "width": 2
- },
- "opacity": 0.5,
- "type": "rect",
- "x0": 1,
- "x1": 2,
- "y0": 10.2857324032974,
- "y1": 11
+ "x1": 3,
+ "y0": 9.07,
+ "y1": 9.92
}
],
"template": {
@@ -1413,18 +1424,20 @@
}
}
},
- "width": 1600,
+ "width": 1200,
"xaxis": {
"range": [
0,
- 3
+ 4
],
+ "showgrid": false,
"showticklabels": false,
"tickvals": [
0,
1,
2,
- 3
+ 3,
+ 4
]
},
"yaxis": {
@@ -1432,8 +1445,9 @@
"griddash": "longdashdot",
"gridwidth": 0,
"showgrid": false,
+ "showticklabels": true,
"ticktext": [
- "0x0",
+ "0x20000
0x0",
"0x52c0
0x2c0",
"0xb4e0
0x64e0",
"0x17848
0x12848",
@@ -1441,46 +1455,20 @@
"0x211000
0x20c000",
"0x2020f68
0x2020f60",
"0x2026578
0x2021578",
- "0x2026800
0x2021800",
"0x206e000
0x2069000",
- "0x2070000
0x206b000",
- [
- "0x0",
- "0x20000",
- "0x2c0",
- "0x52c0",
- "0x64e0",
- "0xb4e0",
- "0x12848",
- "0x17848",
- "0x19310",
- "0x1e310",
- "0x20c000",
- "0x211000",
- "0x2020f60",
- "0x2020f68",
- "0x2021578",
- "0x2026578",
- "0x2021800",
- "0x2026800",
- "0x2069000",
- "0x206e000",
- "0x206b000",
- "0x2070000"
- ]
+ "0x2070000
0x206b000"
],
"tickvals": [
0,
- 4.5713126188966395,
- 5.285580215599239,
- 5.999847812301839,
- 6.714115409004439,
- 7.428383005707039,
- 8.142650602409638,
- 8.142929613189601,
- 8.8571972098922,
- 9.5714648065948,
- 10.2857324032974
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9
]
}
}
@@ -1494,105 +1482,101 @@
"import plotly.graph_objects as go\n",
"import random\n",
"\n",
- "data = data.to_dict(orient='records')\n",
- "\n",
- "# If there is no end, set it to start + 0x1000\n",
- "for d in data:\n",
- " if 'end' not in d:\n",
- " d['end'] = d['start'] + 0x5000\n",
- "\n",
- "# If there is no start, set it to end - 0x1000\n",
- "for d in data:\n",
- " if 'start' not in d:\n",
- " d['start'] = d['end'] - 0x5000\n",
- "\n",
- "# Sort the data by start\n",
- "data = sorted(data, key=lambda x: x['start'])\n",
- "total_used_len = sum([d['end']-d['start'] for d in data]) # Length of all blocks described\n",
"tickpointers = []\n",
+ "vertical_len = len(data['overlap_with'].unique())\n",
+ "vertical_gap_percentage = 0.05\n",
+ "horizontal_gap = 0.1\n",
"\n",
"def random_color():\n",
" return f'#{random.randint(0, 0xFFFFFF):06x}'\n",
"\n",
- "# Create a square for each index\n",
"fig = go.Figure()\n",
- "for i, d in enumerate(data):\n",
- " if i == 0:\n",
- " prev_y = 0\n",
- " max_y = (prev_y + ((d['end'] - d['start']) / total_used_len))\n",
- " fillcolor = random_color()\n",
"\n",
- " if d['order'] == \"ENTRY\":\n",
- " x0 = 0\n",
+ "for i, d in data.iterrows():\n",
+ " fillcolor = random_color()\n",
+ " data.at[i, 'fillcolor'] = fillcolor\n",
+ " \n",
+ " x0=1\n",
+ " x1=3\n",
+ "\n",
+ " if d['overlap'] == False:\n",
+ " y0=d['overlap_with']\n",
+ " y1=d['overlap_with']+1\n",
+ " elif d['overlap'] == True:\n",
+ " overlaps = data.loc[data['overlap_with'] == d['overlap_with']].shape[0]\n",
+ "\n",
+ " # Calculate relative size of the overlap\n",
+ " overlap_sizes = data.loc[data['overlap_with'] == d['overlap_with']].iloc[1:]['size'].sum()\n",
+ " print((d['size']/overlap_sizes)*overlaps)\n",
+ "\n",
+ " if d['overlap'] == i+1:\n",
+ " y0=i\n",
+ " y1=overlaps+i\n",
+ " if y1 == vertical_len:\n",
+ " y1 = vertical_len + vertical_gap_percentage\n",
+ " x0=x0-horizontal_gap\n",
+ " x1=x1+horizontal_gap\n",
+ " else:\n",
+ " y0=0.02+i\n",
+ " y1=0.97+i\n",
" else:\n",
- " x0 = 1\n",
+ " print(f'Something went wrong with {d}. Skipping')\n",
+ " continue\n",
"\n",
" fig.add_shape(\n",
" type=\"rect\",\n",
" x0=x0,\n",
- " y0=prev_y * len(data),\n",
- " x1=x0 + 1,\n",
- " y1=max_y * len(data),\n",
+ " x1=x1,\n",
+ " y0=y0+gap_percentage,\n",
+ " y1=y1-gap_percentage,\n",
" line=dict(width=2),\n",
" fillcolor=fillcolor,\n",
" opacity=0.5,\n",
" layer=\"below\",\n",
" )\n",
"\n",
- " tickpoint = [(prev_y + (max_y - prev_y) / 2) * len(data)]\n",
- " tickpointers.extend([prev_y * len(data)])\n",
- "\n",
" fig.add_trace(go.Scatter\n",
" (\n",
- " x=[x0+0.5],\n",
- " y=tickpoint,\n",
+ " x=[(x0+x1)/2],\n",
+ " y=[y0+0.5],\n",
" text=d['name'],\n",
" mode=\"text\",\n",
" textposition=\"middle center\",\n",
" name=d['name'],\n",
- " # Set color to\n",
" marker=dict(\n",
" color=fillcolor,\n",
" ),\n",
" ))\n",
- " \n",
- " prev_y = max_y\n",
"\n",
"fig.update_xaxes(\n",
- " range=[0, 3],\n",
- " tickvals=[0, 1, 2, 3],\n",
+ " range=[0, 4],\n",
+ " tickvals=[0, 1, 2, 3, 4],\n",
")\n",
"\n",
- "labels = [hex(value) for d in data for value in (d.get('start'), d['end']) if 'end' in d]\n",
+ "labels = []\n",
+ "for i, j in zip(data['start'], data['end']):\n",
+ " labels.append(f'{hex(j)}
{hex(i)}')\n",
"\n",
- "# If label is not the first in labels or the last entry, merge the label with the next label\n",
- "labelset = []\n",
- "for i in range(0, len(labels), 2):\n",
- " if i == 0:\n",
- " labelset.append(labels[i])\n",
- " elif i == len(labels) - 1:\n",
- " labelset.append(labels[i])\n",
- " else:\n",
- " labelset.append(f\"{labels[i+1]}
{labels[i]}\")\n",
- "labelset.append(labels)\n",
+ "tickpointers = [i for i in range(len(data))]\n",
"\n",
"fig.update_yaxes(\n",
" # tickvals=[i for i in range(len(data)+1)], \n",
" tickvals = tickpointers,\n",
- " ticktext=labelset,\n",
+ " ticktext= labels,\n",
" griddash=\"longdashdot\",\n",
" gridwidth=0,\n",
" gridcolor=\"black\",\n",
" showgrid=False,\n",
+ " showticklabels=True,\n",
")\n",
"\n",
"fig.update_xaxes(\n",
- " # Disable ticks\n",
+ " showgrid=False,\n",
" showticklabels=False,\n",
")\n",
"\n",
"fig.update_layout(\n",
- " width=1600,\n",
+ " width=1200,\n",
" height=1200,\n",
" autosize=True,\n",
" margin=dict(l=200, r=20, t=20, b=20),\n",
diff --git a/documentation/source/_ignore/stack_and_functions.csv b/documentation/source/_ignore/stack_and_functions.csv
index 3cb89d1..475e541 100644
--- a/documentation/source/_ignore/stack_and_functions.csv
+++ b/documentation/source/_ignore/stack_and_functions.csv
@@ -7,6 +7,5 @@ start,end,name,order,comment
2146304,2166784,Frederic Destination pointer,,
33689440,33689448,Boot USB return address,,
33691000,33711480,Event buffer pointer,,
-33691648,33712128,BL1 pointer,,
33984512,34004992,First debugger location,,
33992704,34013184,End of memory stack,,