Giter Club home page Giter Club logo

cmsis-dap's Introduction

CMSIS-DAP Refactoring Efforts

Goals are:

  • merge in mbed build system tools
  • automate testing for validating port contributions and patches
  • use mbed exporters for creating project files to debug when needed
  • share common source USB, RTOS, IO, etc.
  • Add hooks where custom handlers are needed but generally not break buids when adding new targets and features

Current Status

Nothing on this branch is guaranteed to work. Current efforts are with the bootloader and then the interface project

Bootloader:

  • K20DX128: working / work in progress

Interface:

  • Not working. Changes to the directory structure and hooks broke these

ToDo

  • mbed_ser driver installer to not require hardware be connected
  • Change USB to expose HID without needing the CDC driver
  • Implement XON/XOFF flowcontrol
  • Incorporate mbed build system
  • Automate basic cross OS tests
  • Change offset address to 0x8000 to match OpenSDA for Freescale only targets. NXP stays at 0x5000
  • Only erase sectors that code fits in
  • Use media eject for MSD
  • Verify semi-hosting on HID connection
  • RAM allocation for virtual file-system hidden files and folders
  • version.txt file for offline, non html-access to the bootloader and CMSIS-DAP version
  • Add hex file support (interface only I think). Exists on master but needs verification and testing
  • Add srec file support (interface only I think)
  • etc...

Tests

A baseline for testing the dap firmware should cover:

  1. program hello world echo application onto target MCU
  • copy using cmd line method
  • copy using drag n drop method
  • Top 3 browsers for each OS
  1. flash with pyOCD
  • change demo app with package to be hello world echo

Note: Test should be completed when echo is received so CDC support is inclusive to all tests.

Note: To automate bootloader testing it may be worth putting a sequence in the dap firmware to execute the bootloader (ie: erase vector table at offset and reset)

Directory

  • bootloader - source files that are only used by the bootloader
  • dap- source files that are only used by the CMSIS-DAP application
  • flash - Source files to build position independant flash algorithms. Adding new flash algorithms
  • shared - A software component that is used by both bootloader and interface
  • tools - python files for building and testing the projects as well as exporting project files for debugging
+---bootloader
¦   +---common
¦   +---hal
¦       +---freescale
¦       +---nxp
+---dap
¦   +---common
¦   +---hal
¦       +---freescale
¦       +---nordic
¦       +---nxp
+---flash
¦   +---common
¦   +---hal
¦       +---freescale
¦       +---nxp
+---shared
¦   +---cmsis
¦   +---common
¦   ¦   +---freescale
¦   ¦   +---nxp
¦   +---rtos
¦   +---usb
+---tools
    +---build
    +---export
    +---test

cmsis-dap's People

Contributors

sg- avatar mazgch avatar 0xc0170 avatar flit avatar xiongyihui avatar emilmont avatar toyowata avatar donmorr avatar lindvalla avatar gamnes avatar micromint avatar c1728p9 avatar stephenpaulger avatar ytsuboi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.