Code Monkey home page Code Monkey logo

vultureprog's Introduction

README

Under construction, please pardon the dust

This repository contains firmware for programmers for Parallel/LPC/FWH/SPI flash chips.

Prerequisites

An arm-none-eabi toolchain

Any toolchain that understands the M4F core can be used. However, the toolchain must also have the following features and libraries

  • Hard-float "-mfloat-abi=hard -mfpu=fpv4-sp-d16" compiled libraries
  • A minimal C library (newlib works great)
  • libnosys

The summon-arm-toolchain is a great tool which supports all of the above.

OpenOCD ( >= 0.7.0 ) with ti-icdi support

OpenOCD is used for "$ make flash" support. You may use alternatives such as lm4flash if you desire.

If you use OpenOCD, you will need version 0.7.0 or later. Previous versions do not have support for ti-icdi. If OpenOCD complains about an unsupported interface or nonexistent script on "$ make flash", then most likely, it is compiled without ti-icdi support. In that case you will have to rebuild it from sources (sorry), and pass "--enable-ti-icdi" to the configure script.

First-time setup

Before building firmware images, the dependencies should be pulled in. Please run:

$ git submodule init

$ git submodule update

Although some toolchains ship libopencm3 as a library, We include it here for several reasons. The major one is that LM4F support was only recently added, and it is very likely that your toolchain's libopencm3 will not include it. Second, the main developer is also a libopencm3 contributor, and including the library makes it very easy to send changes and bugfixes upstream and include them here.

QiProg upstream repository is also included since Vultureprog uses the QiProg API, and links to the USB device logic in QiProg.

Usage

See HACKING.md for instructions on setting up a toolchain, debugger, and programmer. Hardware specific code is placed under

boards/[processor family]/[board name]/

It's also where the firmware files will be created.

There is no need to configure a buildsystem. Everything is makefile-based. To build everything, just

$ make

Once the build completes (no need to take a coffee break. It should finish fast), you can load the firmware to the board.

$ make flash -C boards/[processor family]/[board name]

Yes, it's that easy!

Fine-tuning firmware behavior

Certain options may be fine-tuned by editing src/include/config.h. All configuration options are prefixed with CONFIG_ to distinguish them from other defines. These options are designed more as "developer options" and less as "user options". They include:

  • CONFIG_ENABLE_CONSOLE: enable console logging
  • CONFIG_LOGLEVEL: the severity of debug messages

Troubleshooting

arm-none-eabi/bin/ld: cannot find -lnosys

Your toolchain does not provide libnosys. Please update your toolchain.

[file].elf uses VFP register arguments, [library].a does not

Your toolchain does not link against supporting libraries compiled with "-mfloat-abi=hard -mfpu=fpv4-sp-d16". You have a number of options:

  1. Update your toolchain to link against hard-float libraries.
  2. Build everything with a soft-float ABI:

$ make clean

$ FP_FLAGS="" make

Copyright and license

Vultureprog is licensed under the terms of the GNU General Public License (GPL), version 3 or later.

While some individual source code files are licensed under different licenses, this does not change the fact that the program as a whole is licensed under the terms of the GPLv3+.

Please see the individual source files for the full list of copyright holders.

Copyright notices

A copyright notice indicating a range of years, must be interpreted as having had copyrightable material added in each of those years.

For example:

Copyright (C) 2010-2013 Contributor Name

is to be interpreted as

Copyright (C) 2010,2011,2012,2013 Contributor Name

vultureprog's People

Contributors

mrnuke avatar

Stargazers

 avatar

Watchers

 avatar  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.