Microcontroller DMA Programming via Activation Function

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in programming microcontrollers (MCUs) due to the complexity of direct memory access (DMA) transfers, often resulting in coding errors and debugging difficulties, especially when setting up and reprogramming DMA controllers and other components.

Innovation Solution

A method and system that utilize an activation function and data transfer structures to programmatically set control values for DMA transfers, allowing for graphical representation and generation of source code using a 'pipes and signals' tool, simplifying the process of programming MCU components, including DMA controllers, without requiring extensive knowledge of MCU user manuals.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers manually program DMAC control registers to implement DMA transfers, then DMA data transfer capability is achieved, but coding errors occur frequently and debugging is difficult

Engineering Contradiction:
Improvecoding accuracyVSAvoidprogramming complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

An activation function serves as an intermediary between the developer and the DMAC control registers. Instead of directly writing control values to multiple registers, the developer calls the activation function with simplified parameters, and the function automatically performs the register writing in the correct sequence. This intermediary layer eliminates coding errors related to register sequences and reduces debugging difficulty.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The activation function is designed to automatically handle the complex task of programming DMAC control registers based on minimal input parameters. The function itself manages the complexity of register configuration, parameter validation, and sequential writing, making the system self-sufficient for handling DMA transfer setup without requiring developer expertise in register-level programming.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If CPU executes distinct code to reprogram DMAC for different data transfers, then flexible DMA transfer implementation is achieved, but code complexity and error likelihood increase

Engineering Contradiction:
ImproveDMA transfer flexibilityVSAvoidcode complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The activation function provides a universal interface for programming DMAC control registers for any type of DMA transfer. Whether transferring from UART to RAM, from RAM to USB interface, or other configurations, the same activation function is called with different parameters. This single multi-functional solution replaces multiple distinct code segments, reducing code complexity while maintaining full adaptability for different transfer scenarios.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If CPU polls status register or handles interrupt to transfer data, then data transfer control is achieved, but CPU cannot perform other operations during transfer

Engineering Contradiction:
Improvedata transfer controlVSAvoidCPU operational efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The activation function performs preliminary action by pre-configuring all necessary DMAC control registers with appropriate values before the actual DMA transfer begins. This includes setting source address, destination address, transfer size, and control parameters in advance. Once configured, the DMAC operates independently without requiring CPU intervention during the transfer, allowing the CPU to immediately perform other operations while DMA transfer proceeds autonomously.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10789192B2System and method for programming data transfer within a microcontroller
Publication Date: 2020.09.29 RENESAS ELECTRONICS AMERICA INC
  • US10789192B2 patent drawing
  • US10789192B2 patent drawing
  • US10789192B2 patent drawing

AI summary

A method and system for programming a microcontroller (MCU) to implement a data transfer, the MCU having a flash memory, a central processing unit (CPU) and a direct memory access controller (DMAC). In one embodiment, the method includes calling a function stored in the flash memory, wherein a first parameter is passed to the function when it is called, wherein the first parameter identifies a first data structure that is stored in flash memory, and wherein the first data structure includes first DMAC control values. The CPU reads the first DMAC control values in response to the CPU executing instructions of the function. The CPU then writes the first DMAC control values to respective control registers of the DMAC in response to the CPU executing instructions of the function.