Designing with the i.MX 7 Family

Download curriculum
This course provides all necessary theoretical and practical know-how to design software for the i.MX 7 family with an emphasis on the IoT challenges today: Security, low power consumption, and connectivity.
The course provides an in-depth overview of the key points that a software developer has to take into his considerations while developing software for Cortex-A7 and M4 with Linux/Android and FreeRTOS OS.
The course starts with an overview of the i.MX 7 family, the key features of the i.MX 7D, 7Solo, and the concept of hybrid SoC (Cortex-A and Cortex-M), and the BSP provided by NXP.
The course continues with in-depth training of the various system components and peripherals such as memory system (L1/2 Caches, TCM, on-chip RAM, L3 external memories), Cortex-A7 memory map, Cortex-M4 memory map, DMA memory map, Debug memory map, clock Control Module (CCM), Power Management Unit (PMU), General Power Controller (GPC), reset controller, interrupts and DMA events, SDMA, chip I/O and pinmux, GPIO, DDR controller, ECC accelerator, ECSPI, QuadSPI, uSDHC, Ethernet MAC, PCI Express, USB, timers, multimedia (eLCDIF, CSI, MIPI, EPDC, PXP, SAI, MQS), ADC and temperature monitor, low speed communication (FLEXCAN, I2C, UART, Keyboard port). 
The course then focuses on Cortex-A7 and Cortex-M4 processors programming and debug, low power modes, and multi-core debug.
The course also covers the security features of the processor and how to enable them, including High Assurance Boot (HAB), Central Security Unit (CSU), Secure Non-Volatile Storage (SNVS), Cryptographic module, TrustZone architecture in the Cortex-A7, Interrupt controller security, secured watchdog timer, secured DDR , secure on-chip RAM, on-chip OTP fuses, secure JTAG, and SDMA locked mode.
By the end of this course, the participant will be able to protect his sensitive secrets from being reverse engineered or stolen by writing code that take advantage of ARM technology, NXP hardware secured bocks and Linux/Android security techniques.  
In addition the participant will take advantage of i.MX 7 flexible power modes to control and manage his application power consumption.

Course Duration: 3 days
1. Become familiar with i.MX 7 architecture

2. Become familiar with Cortex-A7 MPCore, Cortex-M4 and the relations between them

3. Place efficiently your code and data with caches, TCM, on-chip RAM, DDR, NAND/NOR memories

4. Choose the right DDR for your project and configure the right mode

5. Connect efficiently camera, display, and audio devices/codecs

6. Design clock, reset, and power management strategy

7. Configure I/Os with IOMUX tool

8. Choose NAND interface and configure ECC with BCH

9. Decide from which device to Boot and use secure boot with HAB

10. Secure your system with security hardware blocks and TrustZone

11. Understand design consideration when working with single or dual operating systems (Linux/Android and FreeRTOS)

Software engineers who would like to design with i.MX 7 family and enhance their programming skills, in order to get the maximum performance from the multi-core SoC device.
1. Course book
Next course will be held on:
April 11-13