Summary of Contents for Nuvoton NuMicro MA35D1 RTP
Page 1
The information described in this document is the exclusive intellectual property of Nuvoton Technology Corporation and shall not be reproduced without permission from Nuvoton. Nuvoton is providing this document only for reference purposes of NuMicro microprocessor based system design. Nuvoton assumes no responsibility for errors or omissions.
MA35D1 OVERVIEW MA35D1 is a heterogeneous microprocessor contains a dual-core Corex-A35 and a Cortex-M4. Although MA35D1 is a powerful microprocessor, executing Linux is not that suitable for handling real time event such as motor control. The Cortex-M4 becomes quite handy as a real time processor to process real time events in such scenario.
MA35D1 DEVELOPMENT ENVIRONMENT The RTP software package supports using Keil uVision, IAR Embedded Workbench, and NuEclipse as firmware development environment. Every sample code contains three directories holding the project file for these tools. Preliminary Preparation Before debugging, we have to use a Nu-Link2-Pro and enable the CMSIS-DAP feature by the following steps: 1.
Page 6
MA35D1 In “Options for Target – Linker” tab, modify “R/O Base” and “R/W Base” value shown in Figure 2-3. Figure 2-3 Linker Configuration To build the project click the “Build” icon shown in Figure 2-4. Figure 2-4 Build Keil Project In “Options for Target –...
MA35D1 Select SW adapter “Nu-Link 2 CMSIS-DAP” and check IDCODE for device connection and set AP to 0x02 shown in Figure 2-6. Figure 2-6 CMSIS-DAP Debug Settings In “Options for Target – Utilities” tab, uncheck “Update Target before Debugging” option shown in Figure 2-7.
Page 8
MA35D1 Figure 2-9 Open IAR Workspace Open Options to modify setting shown in Figure 2-10. Figure 2-10 Workspace Options Select Cortex-M4F or Cortex-M4 with floating point option shown in Figure 2-11. Figure 2-11 General Options May 30, 2022 Page 8 of 31 Rev 1.01...
Page 9
MA35D1 Click “Override default” option to edit linker configuration for debugging on SRAM address shown in Figure 2-12. Figure 2-12 Linker Options Select CMSIS-DAP driver and uncheck “Use flash loader” option shown in Figure 2-13. Figure 2-13 Debugger Options Select SWD interface for CMSIS-DAP setting shown in Figure 2-14.Figure 2-13 Figure 2-14 CMSIS-DAP Interface Setting To build the workspace click the “Make”...
Page 10
MA35D1 Modify “CMSIS-DAP Memory Configuration” base on SRAM address range shown in Figure 2-16. Figure 2-16 CMSIS-DAP Memory Configuration IAR will load the built image and enter debug mode after click the “Download and Debug” icon as shown in Figure 2-17. May 30, 2022 Page 10 of 31 Rev 1.01...
MA35D1 Figure 2-17 Debug IAR Project NuEclipse To use open the NuEclipse project, first launch the NuEclipse tool, select “Import…” from the File menu as shown in Figure 2-18. Figure 2-18 NuEclipse Import Project The next step is to select import existing project to workspace and click “Next >” button as shown in Figure 2-19.
Page 12
MA35D1 Figure 2-19 NuEclipse Import Existing Project And the last step is to select the project file, and then click “Finish” button. May 30, 2022 Page 12 of 31 Rev 1.01...
Page 13
MA35D1 Figure 2-20 NuEclipse Select Project To Build NuEclipse project, click the build icon as shown in Figure 2-21 or use the Ctrl + B hotkey. Figure 2-21 Build NuEclipse Project Click “Debug Configuration” menu item shown in Figure 2-22. Figure 2-22 Debug Configuration May 30, 2022 Page 13 of 31...
Page 14
MA35D1 Double click on the “GDB Nuvoton Nu-Link Debugging” group. The Nuvoton Nu-Link debug configuration appears on the right-hand side. Figure 2-23 GDB Nuvoton Nu-Link Debugging May 30, 2022 Page 14 of 31 Rev 1.01...
Page 15
MA35D1 The value of GDB client port is set to 3334. Figure 2-24 GDB Client Port May 30, 2022 Page 15 of 31 Rev 1.01...
Page 16
MA35D1 Check the startup debug setting shown in Figure 2-25, and then click “Debug” button. NuEclipse will load the built image and enter debug mode. Figure 2-25 Startup Debug Setting May 30, 2022 Page 16 of 31 Rev 1.01...
MA35D1 Use PDMA2 channel 5 to demonstrate memory to memory transfer PDMA_ScatterGather by scatter-gather mode. Use PDMA to implement Ping-Pong buffer by scatter-gather mode PDMA_ScatterGather_ (memory to memory). PingPongBuffer Use PDMA2 channel 2 to transfer data from memory to memory PDMA_Stride with stride.
MA35D1 TIMER_ToggleOut Demonstrate the timer 2 toggle out function on pin PJ.12. Table 3-9 TIMER Samples 3.4.7 Watchdog Timer (WDT) Sample Name Description Implement WDT time-out interrupt event to wake up system and WDT_TimeoutWakeup generate time-out reset system event while WDT time-out reset AndReset delay period expired.
MA35D1 EPWM_Capture Capture the EPWM1 Channel 0 waveform by EPWM1 Channel 2. EPWM_DeadTime Demonstrate how to use EPWM Dead Time function. Change duty cycle and period of output waveform by EPWM EPWM_DoubleBuffer Double Buffer function. EPWM_OutputWaveform Demonstrate how to use PWM output waveform. Capture the EPWM1 Channel 0 waveform by EPWM1 Channel 2, EPWM_PDMA_Capture and use PDMA to transfer captured data.
MA35D1 UART_PDMA Demonstrate UART transmit and receive function with PDMA. UART_RS485 Transmit and receive data in UART RS485 mode. Transmit and receive data from PC terminal through a RS232 UART_TxRxFunction interface. Show how to wake up system from Power-down mode by UART UART_Wakeup interrupt.
MA35D1 SPI_LoopBack A SPI read/write demo connecting SPI0 MISO and MOSI pins. Configure SPI0 as Master mode and demonstrate how to SPI_MasterFIFOMode communicate with an off-chip SPI Slave device with FIFO mode. This sample code needs to work with SPI_SlaveFIFOMode sample code.
MA35D1 Sample Name Description An I²S demo used to play back the input from line-in or MIC I2S_Codec interface. An I²S with PDMA demo used to play back the input from line-in or I2S_Codec_PDMA MIC interface. Table 3-21 I S Samples 3.4.19 M-Controller Area Network (MCAN) Sample Name...
MA35D1 remoteproc support The device tree node settings of remoteproc is also enabled: rproc { compatible = "nuvoton,ma35d1-rproc"; mboxes = <&wormhole 1>; resets = <&reset MA35D1_RESET_CM4>; status = "okay"; After starting the Linux kernel, user can load and start/stop the remote processor firmware through the sysfs interface (The sysfs filesystem is a pseudo-filesystem which provides an interface to kernel data structures).
MA35D1 RESOURCE MANAGEMENT In MA35D1, the only resource that is bounded with Cortex-M4 is WDT2 and WWDT2. To prevent contention, MA35D1 use System Security Memory Configuration Controller (SSMCC) to control the memory space that can access by Cortex-M4. And use System Security Peripheral Configuration Controller (SSPCC) to assign the peripherals that are controlled by Cortex-M4.
MA35D1 every channel can send 4 words of message each time. WHC provides a TX status register WHCx_TXSTS allowing the sender to know if the data has been read by receiver or not, a RX status register WHCx_RXSTS notify if there’s new message coming in. Besides message exchange, there’s also a WHCx_CPSTS register indicates the counterpart operating and reset status.
MA35D1 OPENAMP remoteproc Remoteproc is a framework that allows the ARM host processor(s) to load firmware into RTP cores, start the RTP cores, stop the RTP cores, and configure resources that the RTPs might need during their execution (such as configuring and providing shared buffers in DDR memory for message passing). RPMsg RPMsg is a message passing mechanism that requests resources through remoteproc and builds on top of the virtio framework.
MA35D1 REVISION HISTORY Date Revision Description 2022.02.27 1.00 Preliminary issued. 2022.05.30 1.01 Add KPI sample May 30, 2022 Page 30 of 31 Rev 1.01...
Page 31
MA35D1 Important Notice Nuvoton Products are neither intended nor warranted for usage in systems or equipment, any malfunction or failure of which may cause loss of human life, bodily injury or severe property damage. Such applications are deemed, “Insecure Usage”.
Need help?
Do you have a question about the NuMicro MA35D1 RTP and is the answer not in the manual?
Questions and answers