본문 바로가기
Development

CMSIS 란?

by 루카오리 2014. 11. 7.

CMSIS

Cortex Microcontroller Software Interface Standard의 약자.

즉 다양한 칩 벤더가 Cortex 시리즈의 IP를 라이센스해가면서 하드웨어 독립적인 표준화된 소프트웨어 인터페이스가 필요하게 된다. 스펙은 ARM에 사용자 등록을 하면 받을 수 있다. CMSIS는 CMSIS-CORE, CMSIS-Driver, CMSIS-DSP, CMSIS-RTOS API, CMSIS-Pack, CMSIS-SVD, CMSIS-DAP 로 구성된다.

  • CMSIS-CORE: It provides at standardized interface for Cortex-M0, Cortex-M3, Cortex-M4, SC000, and SC300. Included are also SIMD intrinsic functions for Cortex-M4 SIMD instructions.
  • CMSIS-Driver: defines generic peripheral driver interfaces for middleware making it reusable across supported devices. The API is RTOS independent and connects microcontroller peripherals with middleware that implements for example communication stacks, file systems, or graphic user interfaces.
  • CMSIS-DSP: DSP Library Collection with over 60 Functions for various data types: fix-point (fractional q7, q15, q31) and single precision floating-point (32-bit). The library is available for Cortex-M0, Cortex-M3, and Cortex-M4. The Cortex-M4 implementation is optimized for the SIMD instruction set.
  • CMSIS-RTOS API: Common API for Real-Time operating systems. It provides a standardized programming interface that is portable to many RTOS and enables therefore software templates, middleware, libraries, and other components that can work across supported the RTOS systems.
  • CMSIS-Pack: describes with a XML based package description (PDSC) file the user and device relevant parts of a file collection (called software pack) that includes source, header, and library files, documentation, Flash programming algorithms, source code templates, and example projects. Development tools and web infrastructures use the PDSC file to extract device parameters, software components, and evaluation board configurations.
  • CMSIS-SVD: System View Description for Peripherals. Describes the peripherals of a device in an XML file and can be used to create peripheral awareness in debuggers or header files with peripheral register and interrupt definitions.
  • CMSIS-DAP: Debug Access Port. Standardized firmware for a Debug Unit that connects to the CoreSight Debug Access Port. CMSIS-DAP is distributed as separate package and well suited for integration on evaluation boards. This component is provided as separate download.

CMSIS-DAP

CMSIS-DAP의 DAP는 Coresight Debug Access Port의 약자이다. 구체적인 스펙은 역시 ARM에 사용자 등록을 하면 받을 수 있다. https://silver.arm.com/browse/CMSISDAP 아래 그림은 3가지 mbed모듈에 어떻게 CMSIS-DAP가 연결이 되어 있는지를 보여준다.

cmsis-dap-6

여기서 onboard interface의 기능은 다음 그림으로 설명이 된다. 즉 호스트와는 USB로 연결이 되어, Mass Storage Device 프로그래밍, CMSIS-DAP 로 디버깅, 가상 시리얼 포트를 제공한다.

onboard-if-block

mbed의 HDK에 이것이 포함이 되어서 커스텀 디자인을 지원하지만 현재는 NXP LPC1768, LPC11U24 and KL25Z  이 3가지 칩만 지원을 하고, 몇 벤더(NXP, Freescale)만 선택을 했다는…

The mbed HDK currently supports the NXP LPC1768, LPC11U24 and KL25Z. Due to an unexpectedly high demand for the HDK, we are choosing a few lead partners to work with to iron out any issues that may arise before we make it freely downloadable.

출처: http://mbed.org/handbook/mbed-HDK#mbed-onboard-interface

CMSIS-DAP firmware

중요한 것은 인터페이스 칩의 firmware인데, 이것도 위 사이트에서 다운로드가 가능하며 하드웨어 요구사항은 다음과 같다.

Hardware Requirements

The CMSIS-DAP Firmware is designed for Debug Units that fulfill the following hardware requirements:

  • Cortex-M0, Cortex-M0+, Cortex-M3, or Cortex-M4 processor-based microcontroller.
  • CPU Clock: 48MHz or higher; Microcontroller must have a SYSTICK timer.
  • RAM: 8KB or more; Flash ROM: 16KB or more.
  • Full-speed or High-speed USB Device Peripheral.
  • 7 standard I/O pins for JTAG/SWD Device Interface.
  • optional 2 I/O pins for Status LEDs.

추가자료

  • SeeedStudio의 경우는 보드에 타겟칩만 있는데, 이경우는 보드 2개를 연결해서 프로그래밍을 하기도 한다. 관련 정보
  • NXP에서 제공하는 app. note:  Porting the CMSIS-DAP debugger to the Cortex-M0 platform