Giter VIP home page Giter VIP logo

nuvoprog's Introduction

nuvoprog - Nuvoton microcontroller programmer

nuvoprog is an open source tool for programming Nuvoton microcontrollers; previously, they could only be programmed under Windows using Nuvoton's proprietary tools. This tool assumes a Nuvoton NuLink family programmer or compatible; no support is provided (yet) for other programmers.

This tool should be reasonably robust but presently has very limited device support; if you wish to add support for new devices, that would be much appreciated. Information on how to do so is at the bottom of this readme

Additionally, a human-friendly (JSON) interface to the configuration bits is provided.

The tool provides integrated help

Example usage:

$ nuvoprog read -t n76e003 dev.ihx
$ nuvoprog config decode -t n76e003 -i dev.ihx | tee config.json
$ nuvoprog program -t n76e003 -c @config.json -a aprom.ihx -l ldrom.ihx

You may also be interested in libn76, a SDCC-supporting BSP for the Nuvoton N76 family.

Cortex-M devices: While I have no objections to someone adding support for these, have you considered OpenOCD?

Installing

This is a Go project; install a Go toolchain and install it using :

go install github.com/boseji/nuvoprog/cmd/nuvoprog@latest

Ensure that $GOPATH/bin is on your path (GOPATH defaults to $HOME/go); alternatively, move the resulting binary to a location of your choice.

The hidapi and libusb packages are vendored by our upstream

Supported Devices

Programmers

  • Nu-Link-Me (as found on Nu-Tiny development boards)
  • Nu-Link

Target and tested devices

  • N76E003
  • N76E616
  • N76E885

Missing functionality

  • Firmware upgrades
  • Debugging?

Adding support for new devices

To add support for new devices, you will need:

  • Windows
  • The Nuvoton ICP tool, and
  • Wireshark

A Wireshark dissector for the protocol can be found in the misc directory.

Nuvoton have an OpenOCD patch which you may find useful as reference material

Other NuLink Programmers

If this is a protocol v2 programmer, you'll need to add support for that (The leading length field changes from 8 to 16 bits, but otherwise things are unchanged).

Add the VID and PID to the table in protocol/device.go and see if nuvoprog connects successfully. If it doesn't, compare protocol exchanges in Wireshark

Other Microcontrollers

First step is to see if the microcontroller belongs to the same family and if the connection and programming flow is the same (The flow should be the same for the 8051T1 family, may differ for others).

If they are, you probably just need to define target device details:

  • Configuration bit codec
  • Target definition (see target/n76/n76e003.go)

You may need to get details like LDROM offsets from Wireshark dumps

nuvoprog's People

Contributors

boseji avatar erincandescent avatar cjacker 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.