### Arm DS installation path example Source: https://support.arm.com/documentation/ka006087/1-0 Example path to the Arm Development Studio installation folder's sw directory, used as a prerequisite for copying files to the remote machine. ```text C:\Program Files\Arm\Development Studio 2023.1\sw ``` -------------------------------- ### Create example project directory Source: https://support.arm.com/documentation/ka005660/1-0 Create a new directory for the example project. ```bash mkdir example_project ``` -------------------------------- ### Original putchar with _testbit_ causing Warning 140 and Error 185 Source: https://support.arm.com/documentation/ka003938/1-0 Original serial example from the Getting Started manual that triggers Warning 140 because _testbit_ is undefined (should be _testset_) and Error 185 because the atomic section exceeds 4 instructions. ```c char putchar (char c) { /* substitute func for putchar */ while ((( unsigned char)(tx_in + 1))==tx_out); /* buffer full? */ _atomic_ (0); tx_buf [tx_in++] = c; /* put char in buffer */ _endatomic_ (); if (_testbit_ (tx_restart)) { /* if transmits must be restarted */ S0TIR = 1; /* enable transmit request */ } return (c); } ``` -------------------------------- ### Run ARM Compiler 6.6 installer on Windows Source: https://support.arm.com/documentation/107847/6-6 Run the setup.exe installer on Windows. Use win-x86_64\setup.exe on 64-bit hosts and win-x86_32\setup.exe on 32-bit hosts. Uninstall previous versions before upgrading. ```bash win-x86_64\setup.exe ``` ```bash win-x86_32\setup.exe ``` -------------------------------- ### Example µVision Debugger Script File Source: https://support.arm.com/documentation/ka002991/1-0 Example debugger script file for µVision. Sets watchpoints on myvar and myvar2, defines a signal function that toggles P1 every 5,000 clocks, defines OnResetExec to call EnableTPIU() after reset, changes the program start address to 0x1000, and runs the program stopping at main. All commands from the µVision User's Guide may be used in a script file. ```plaintext /*-------------------------------------------*/ /* Set Watchpoints */ /*-------------------------------------------*/ ws myvar ws myvar2 /*-------------------------------------------*/ /* Create a Signal Function */ /*-------------------------------------------*/ signal void bob(void) { while (1) { twatch (5000); /* Delay for 5,000 clocks */ P1 = ~P1; /* Toggle P1 Pins */ } } /*-------------------------------------------*/ /* Executes upon software RESET; */ /* (Use the function name as is) */ /*-------------------------------------------*/ FUNC void OnResetExec (void) { // EnableTPIU(); // call the initialization function } /*-------------------------------------------*/ /* Change the program start address */ /*-------------------------------------------*/ $=0x1000 /*-------------------------------------------*/ /* Run the Program (stop at main) */ /*-------------------------------------------*/ g, main ``` -------------------------------- ### Install Windows silently with PATH and registry Source: https://support.arm.com/documentation/109845/13-3-Rel1 Example command to install the tools silently, amend users PATH, and add registry entry. ```bash > arm-gnu-toolchain-13.3.rel1-mingw-w64-i686-.exe /S /P /R ``` -------------------------------- ### Set up Questasim workspace Source: https://support.arm.com/documentation/ka004608/1-0 Set up a Questasim workspace for the execution test bench. Creates the work library and a placeholder file. ```shell > rm -rf work > vlib work > mkdir -p work/_mxl_sc > touch work/_mxl_sc/_${MODEL_NAME}.vhd.tmp ```