diff --git a/GetStarted.md b/GetStarted.md new file mode 100644 index 0000000000000000000000000000000000000000..35f277d6c60f33e2b85d26e1bdba68bf05c616dc --- /dev/null +++ b/GetStarted.md @@ -0,0 +1,123 @@ +# Example soclabs Arm-Cortex-M0-based microcontroller project + + +Recommended directory structure + +A good starting point for a template for building a Cortex-M based microntroller is to use the AAA components: + +Create a directory of (Read-only) Arm IP bundles from Product Download Hub, logged in with AAA credentials: + +Download Corstone-101: + https://developer.arm.com/downloads/view/BP306-GRP +Download Cortex-M0 CPU: + https://developer.arm.com/downloads/view/AT510-GRP +Download Micro-DMA PL230: + https://developer.arm.com/downloads/view/PL230-GRP + +and in each case + gunzip the <bundle>.tar.gz + gtar xfv <bundle>.tar + +The project is structured to work alongside IP provided under the Arm Acacdemic Access enttilements. + +Provide a soft-link to the downloaded and configured IP in a directory '**arm-AAA-ip**': + +``` +arm-AAA-ip --> link to directory of unpacked Arm IP directory trees +|-- Cortex-M0 +|-- Corstone-101_Foundation_IP +|-- DMA230_MicroDMA_Controller +soclabs-cortexm0-mcu +|-- ... +``` + + +The Arm documentation can be referenced from the download trees: + +Cortex-M0 release note, and reference manuals: +''' + arm-AAA-ip/Cortex-M0/*.pdf + arm-AAA-ip/Cortex-M0/AT510-BU-00000-r0p0-03rel3/doc/*.pdf +''' +Corstone-101 release notes, and reference manuals: +''' + arm-AAA-ip/Corstone-101_Foundation_IP/*.pdf + arm-AAA-ip/Corstone-101_Foundation_IP/BP210-BU-00000-r1p1-00rel0/documentation/*.pdf +''' +PL230 MicroDMA release notes, and reference manuals: +''' + arm-AAA-ip/DMA-230_MicroDMA_Controller/*.pdf + arm-AAA-ip/DMA-230_MicroDMA_Controller/PL230-BU-00000-r0p0-02rel1/*.pdf +''' + +The microcontroller simulation hierarchy is delivered in the '**soclabs-cortexm0-mcu**' directory: + +``` +soclabs-cortexm0-mcu +|-- Cortex-M0 +| |-- soclabs_demo +| | software +| | | cmsis +| | | |-- CMSIS +| | | | |-- Include +| | | |-- Device +| | | | |-- ARM +| | | | | |-- CMSDK_CM0 +| | | | | | |-- Include +| | | | | | | |-- Source +| | | | | | | |-- ARM +| | | | | | | |-- GCC +| | | common +| | | |-- bootloader +| | | |-- debug_tests +| | | |-- demos +| | | |-- dhry +| | | |-- retarget +| | | |-- romtable_tests +| | | |-- scripts +| | | |-- validation +| | | debug_tester +| | systems +| | |-- cortex_m0_cpu +| | | |-- rtl_sim +| | | | testcodes +| | | | |-- apb_mux_tests +| | | | |-- bitband_tests +| | | | |-- bootloader +| | | | |-- debug_tests +| | | | |-- default_slaves_tests +| | | | |-- dhry +| | | | |-- dma_tests +| | | | |-- dualtimer_demo +| | | | |-- generic +| | | | |-- gpio_driver_tests +| | | | |-- gpo_tests +| | | | |-- hello +| | | | |-- interrupt_demo +| | | | |-- memory_tests +| | | | |-- mpu_tests +| | | | |-- mtb_tests +| | | | |-- romtable_tests +| | | | |-- rtx_demo +| | | | |-- self_reset_demo +| | | | |-- sleep_demo +| | | | |-- timer_driver_tests +| | | | |-- timer_tests +| | | | |-- uart_driver_tests +| | | | |-- uart_tests +| | | | |-- user_tests +| | | | |-- vtor_tests +| | | |-- tools +| | | |-- v2html_doc +| | | |-- verilog +``` + +simulation setup (of the form): +``` + export ARM_PRODUCT_PATH=/apps/arm/developmentstudio-2021.0/sw/mappings + export ARM_TOOL_VARIANT=gold + export PATH=$PATH:/apps/arm/developmentstudio-2021.0/sw/ARMCompiler5.06u7/bin/ +``` + + +