|
1 | 1 | --- |
2 | 2 | # User change |
3 | | -title: "Debug Connections" |
| 3 | +title: "Create debug connections" |
4 | 4 |
|
5 | 5 | weight: 5 # 1 is first, 2 is second, etc. |
6 | 6 |
|
7 | 7 | # Do not modify these elements |
8 | 8 | layout: "learningpathall" |
9 | 9 | --- |
10 | 10 |
|
11 | | -## Debug Connections |
| 11 | +## Overview |
12 | 12 |
|
13 | 13 | You are now ready to create debug connections for each of the sub-systems within Zena CSS. In this section you will create the connections, which will be subsequently enhanced in the following section. You may prefer to fully set up one such connection before moving to others. |
14 | 14 |
|
15 | | -Arm Development Studio has full support for Heterogeneous systems such as Zena CSS, and so you can connect to all processors simultaneously. |
| 15 | +Arm Development Studio has full support for heterogeneous systems such as Zena CSS, and so you can connect to all processors simultaneously. |
16 | 16 |
|
17 | | -### Debug connection project |
| 17 | +## Create a project for connection files |
18 | 18 |
|
19 | | -First, create a project to store these connections (`.launch` files) in. |
| 19 | +First, create a project to store these connections (`.launch` files). |
20 | 20 |
|
21 | | -Select `File` > `New...` > `Project` > `General` > `Project`, and give it a meaningful name (`Connections`). |
| 21 | +Select **File** > **New...** > **Project** > **General** > **Project**, and give it a meaningful name (for example, `Connections`). |
22 | 22 |
|
23 | | -### RSE (Cortex-M55) |
| 23 | +## Create an RSE (Cortex-M55) model connection |
24 | 24 |
|
25 | | -Runtime Security Engine (RSE) is based on [Cortex-M55](https://developer.arm.com/Processors/Cortex-M55) core and is a security subsystem fulfilling the role of Root of Trust. |
| 25 | +Runtime Security Engine (RSE) is based on the [Cortex-M55](https://developer.arm.com/Processors/Cortex-M55) core and is a security subsystem fulfilling the role of Root of Trust. |
26 | 26 |
|
27 | | -Select `File` > `New` > `Model Connection`. |
| 27 | +Select **File** > **New** > **Model Connection**. |
28 | 28 |
|
29 | 29 | {{% notice Note %}} |
30 | | -You can also use `File` > `New` > `Other` > `Arm Debugger` > `Model Connection`, or |
31 | | - |
32 | | -`Create a debug connection...` shortcut in the `Debug Control` pane. |
| 30 | +You can also use **File** > **New** > **Other** > **Arm Debugger** > **Model Connection**, or the **Create a debug connection**... shortcut in the **Debug Control** pane. |
33 | 31 | {{% /notice %}} |
34 | 32 |
|
35 | | -Specify a connection name (`RSE`), and associate with the above `Connections` project. Click `Next`. |
| 33 | +Specify a connection name (`RSE`), and associate with the above `Connections` project. Click **Next**. |
36 | 34 |
|
37 | | -Locate the FVP based on the name you gave it previously (`Zena_CSS_FVP`). The text filter can help you locate it easily. |
| 35 | +Locate the FVP based on the name you gave it previously (`Zena_CSS_FVP`). You can use the text filter to locate it quickly. |
38 | 36 |
|
39 | | -You will then be presented with the `Edit configuration` pane. In the `Connection` tab, scroll down to locate `Bare Metal Debug` > `Arm_Cortex-M55`. |
| 37 | +You will then be presented with the **Edit configuration** pane. In the **Connection** tab, scroll down to locate **Bare Metal Debug** > **Arm_Cortex-M55**. |
40 | 38 |
|
41 | | -As you will be later launching the FVP with the software stack loaded, select `Connect to an already running model`. |
| 39 | +As you will be later launching the FVP with the software stack loaded, select **Connect to an already running model**. |
42 | 40 |
|
43 | | -Assuming the same host will be running both the FVP and the debugger, specify the `Connection address` as the default `127.0.0.1:7100`. |
| 41 | +Assuming the same host will be running both the FVP and the debugger, specify the **Connection address** as the default `127.0.0.1:7100`. |
44 | 42 |
|
45 | 43 | {{% notice Note %}} |
46 | | -`127.0.0.1` is the same as `localhost`, that is the same host machine as is running the FVP. |
| 44 | +`127.0.0.1` is the same as `localhost`, which targets the host running the FVP. For a remote FVP, specify the remote IP address and start the FVP with `-A`. Port `7100` is the default Iris port and can be adjusted if needed. |
| 45 | +{{% /notice %}} |
| 46 | + |
| 47 | +Arm Development Studio creates `RSE.launch` inside the **Connections** project. |
| 48 | + |
| 49 | +## Create a Safety Island (Cortex-R82AE) model connection |
47 | 50 |
|
48 | | -It is also possible to connect to a remote host by specifying appropriate IP address, and launching FVP with the `-A` option. |
| 51 | +The Safety Island is based on the [Cortex-R82AE](https://developer.arm.com/Processors/Cortex-R82AE) core and manages power, clocks, and CMN control. |
49 | 52 |
|
50 | | -`7100` is the default port number. You may need to change this if necessary. |
| 53 | +Follow the same steps as for RSE, with this change: |
| 54 | + |
| 55 | +In **Edit configuration**, expand **Bare Metal Debug** and select **Arm_Cortex-R82AE**. |
| 56 | + |
| 57 | +{{% notice Tip %}} |
| 58 | +To save time, copy `RSE.launch` to `SI.launch` and update the CPU selection to **Arm_Cortex-R82AE**. |
51 | 59 | {{% /notice %}} |
52 | 60 |
|
53 | | -Click `Apply` to save the connection information, and `Close`. Observe that `RSE.launch` is created inside the `Connections` project. |
| 61 | +## Create Primary compute (Cortex-A720AE) connections |
54 | 62 |
|
55 | | -### Safety Island (Cortex-R82AE) |
| 63 | +Primary compute comprises four clusters intended to run a rich OS such as Linux. Each cluster has four [Cortex-A720AE](https://developer.arm.com/Processors/Cortex-A720AE) cores alongside a [DSU-120AE](https://developer.arm.com/Processors/DSU-120AE) DynamIQ Shared Unit. |
56 | 64 |
|
57 | | -The Safety Island is a subsystem based on [Cortex-R82AE](https://developer.arm.com/Processors/Cortex-R82AE) core. The software running on the Safety Island is responsible for power, clock and CMN control. |
| 65 | +You will create two connections: one for bare-metal initialization and one with Linux kernel awareness for SMP debug. |
58 | 66 |
|
59 | | -The procedure to create this connection is very similar to the above, other than to select `Bare Metal Debug` > `Arm_Cortex-R82AE` from the drop-down. |
| 67 | +### Primary init (bare metal, CPU0 only) |
60 | 68 |
|
61 | | -{{% notice %}} |
62 | | -For convenience you can copy-and-paste `RSE.launch` as `SI.launch` and just modify the CPU. |
63 | | -{{% /notice %}} |
| 69 | +Create `Primary_init.launch`: |
| 70 | + |
| 71 | +- Select **File > New > Model Connection**. |
| 72 | +- Select your `Zena_CSS_FVP` model. |
| 73 | +- In **Edit configuration**, expand **Bare Metal Debug** and select **ARM_Cortex-A720AE_0** to attach to CPU0 only. This leaves other CPUs running. |
64 | 74 |
|
65 | | -### Primary Compute (Cortex-A720AE) |
| 75 | +### Primary Linux (SMP, OS awareness) |
66 | 76 |
|
67 | | -The Primary Compute consists of four processor clusters to run a rich OS such as Linux. Each processor cluster includes four [Cortex-A720AE](https://developer.arm.com/Processors/Cortex-A720AE) cores and a [DSU-120AE](https://developer.arm.com/Processors/DSU-120AE) DynamIQ Shared Unit. |
| 77 | +Create **Primary_Linux.launch** for Linux kernel debug with OS awareness: |
68 | 78 |
|
69 | | -The application processors will be debugged in an SMP configuration with Linux Kernel awareness. |
| 79 | +- Use **File > New > Model Connection**. |
| 80 | +- Select your **Zena_CSS_FVP** model. |
| 81 | +- In **Edit configuration**, expand **Linux Kernel Debug** and choose **ARM_Cortex-A720AEx16 SMP Cluster 1**. |
| 82 | + This connects to all 16 Cortex-A720AE processors described in the FVP. Only cores 0 to 3 are used by the default Linux configuration. |
70 | 83 |
|
71 | | -As shown above, create `Primary_init.launch` connection and scroll to `Bare Metal Debug` > `ARM_Cortex-A720AE_0`. This will connect to just CPU0, leaving the other CPUs free to run. |
| 84 | +To learn more about OS awareness in Arm Debugger, see the [OS awareness documentation](https://developer.arm.com/documentation/101470/latest/Debugging-Embedded-Systems/About-OS-awareness). |
72 | 85 |
|
73 | | -To debug the Linux kernel you can make use of the [OS awareness](https://developer.arm.com/documentation/101470/latest/Debugging-Embedded-Systems/About-OS-awareness) feature of the Arm Debugger. |
74 | 86 |
|
75 | | -Create `Primary_Linux.launch` connection and scroll to `Linux Kernel Debug` > `ARM_Cortex-A720AEx16 SMP Cluster 1`. This will connect to all 16 `Cortex-A720AE` processors present in the FVP, though only cores 0-3 are used. |
|
0 commit comments