All Projects → lnls-dig → openMMC

lnls-dig / openMMC

Licence: GPL-3.0 License
Open source firmware for MMC controllers

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
objective c
16641 projects - #2 most used programming language
assembly
5116 projects
CMake
9771 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to openMMC

FreeRTOS-Emulator
POSIX based FreeRTOS emulator with SDL2 graphics interface and multiple async communications interfaces, aiming to make it possible to teach FreeRTOS without embedded hardware using similar processes
Stars: ✭ 43 (+95.45%)
Mutual labels:  freertos
cortexm-AES
high performance AES implementations optimized for cortex-m microcontrollers
Stars: ✭ 18 (-18.18%)
Mutual labels:  cortex-m3
ipmi-fan-control
No description or website provided.
Stars: ✭ 17 (-22.73%)
Mutual labels:  ipmi
Modbus-STM32-HAL-FreeRTOS
Modbus TCP and RTU, Master and Slave for STM32 using Cube HAL and FreeRTOS
Stars: ✭ 272 (+1136.36%)
Mutual labels:  freertos
nuclei-sdk
Nuclei RISC-V Software Development Kit
Stars: ✭ 65 (+195.45%)
Mutual labels:  freertos
arm synth
Wavetable Synth Running on an STM32F 32-bit ARM Cortex M3 microprocessor
Stars: ✭ 23 (+4.55%)
Mutual labels:  cortex-m3
FreeRTOS-RISCV
A port of FreeRTOS for the RISC-V ISA
Stars: ✭ 68 (+209.09%)
Mutual labels:  freertos
swd programing sram
Programming internal SRAM over ARM Cortex M3 SWD
Stars: ✭ 113 (+413.64%)
Mutual labels:  cortex-m3
preemptive
A minimum preemptive OS on Cortex-M3 (specially on blue-pill board) written in Rust.
Stars: ✭ 30 (+36.36%)
Mutual labels:  cortex-m3
STM32 Base Project
STM32 Base project with a lot of stuff
Stars: ✭ 58 (+163.64%)
Mutual labels:  freertos
pid-stm32f746
Embedded graphical interface for PID control
Stars: ✭ 29 (+31.82%)
Mutual labels:  freertos
mTower
mTower is Trusted Execution Environment specially designed to be used on MicroController Units (MCUs) supporting ARM TrustZone technology (e.g., Cortex-M23/33/35p). mTower operates well under restrictions typical for such environment – small RAM and ROM sizes, relatively low performance, absence of rich OSes providing variety of services availab…
Stars: ✭ 34 (+54.55%)
Mutual labels:  freertos
FreeRTOS-rust
Rust crate for FreeRTOS
Stars: ✭ 159 (+622.73%)
Mutual labels:  freertos
zmu
zmu - Emulator for Microcontroller Systems
Stars: ✭ 70 (+218.18%)
Mutual labels:  cortex-m3
os
OS for Pi-KVM based on Arch Linux ARM
Stars: ✭ 42 (+90.91%)
Mutual labels:  ipmi
ez-rtos
A micro real-time operating system supporting task switching, delay function, memory allocator and critical section. It is writen on ARM Cortex-M3 assemble language, it runs successfully on STM32F103 MCU.
Stars: ✭ 57 (+159.09%)
Mutual labels:  cortex-m3
pxe-pilot
API and CLI to manage PXE configurations
Stars: ✭ 56 (+154.55%)
Mutual labels:  ipmi
stm32f10x makefile freertos
stm32f10x gcc makefile freertos
Stars: ✭ 28 (+27.27%)
Mutual labels:  freertos
platformio-libopencm3-freertos
Sample blinky project for PlatformIO using libopencm3 and FreeRTOS
Stars: ✭ 14 (-36.36%)
Mutual labels:  freertos
kvmd
The main Pi-KVM daemon
Stars: ✭ 125 (+468.18%)
Mutual labels:  ipmi

openMMC

Travis build status

Open Source modular IPM Controller firmware

Documentation: https://lnls-dig.github.io/openMMC

Installation:

The following packages are needed in your system in order to compile the firmware:

  • gcc-arm-none-eabi
  • cmake
  • cmake-gui (Optional)

gcc-arm-none-eabi can be installed from the pre-compiled files found at: https://launchpad.net/gcc-arm-embedded/+download or you can run the following command under Ubuntu:

sudo apt-get install gcc-arm-none-eabi

Next step is to clone this repository into your workspace.

git clone https://github.com/lnls-dig/openMMC

Compilation

Create a new folder wherever is suitable

cd <build_folder>

Run CMake using the path to the repository folder as an direct argument and the flag -DBOARD=<board_name> and -DVERSION=<board_version> to configure the compilation scripts to your specific board hardware

cmake <path_to_source> -DBOARD=<board_name> -DVERSION=<board_version>

Example:

cmake ~/openmmc/ -DBOARD=afc -DVERSION=3.1

After creating the build files with CMake, you can compile the firmware using make, optionally setting the VERBOSE flag to 1 if you wish to see all the compilation commands

make [VERBOSE=1]

Both a .axf file and a .bin file will be generated in the out folder. You can use any one you prefer to program your processor.

To clean the compilation files (binaries, objects and dependence files), just run

make clean

To make a debug build (to include symbols into axf file, turn off optimizations, etc.) add -DCMAKE_BUILD_TYPE=Debug option to cmake command. Example:

cmake ~/openmmc/ -DBOARD=afc -DVERSION=3.1 -DCMAKE_BUILD_TYPE=Debug

Programming

After creating the binaries, you can program them to your chip any way you want, using a JTAG cable, ISP Programmer, custom bootloader, etc. There are 2 program interfaces supported so far: LPCLink and LPCLink2 In order to select which interface will be used, include the flag -DDEBUG_PROBE=<probe_name> when running CMake (this option defaults to LPCLink).

cmake ~/openmmc/ -DBOARD=afc -DVERSION=3.1 -DDEBUG_PROBE=LPCLink2

LPCLink

If you own a LPCLink or LPCLink2 board, you can use it to program the LPC1764 processor via its JTAG interface

NOTE: In this case you must have the LPCXpresso installed in your machine, since we need to use the binaries for the interface chip on the LPCLink that they provide.

The CMake script should be able to find LPCXpresso path, but if this is not possible, open the <openMMC_root_folder>/CMakeLists.txt and change the following line

set(LPCXPRESSO_PATH <lpcxpresso_path>)

NOTE: You can also use cmake-gui to set this option.

To transfer only the application firmware, run

make program_app

To transfer only the bootloader firmware, run

make program_boot

If you want to erase the whole Flash and copy both firmwares:

make program_all

NOTE 2: We only have linker scripts to LPC1764 and LPC1769, so if you wish to compile to a different controller, you'll have to change the linker/lpc1764_boot.ld and linker/lpc1764_app.ld files, which defines the memory regions, otherwise you'll run into several HardFault errors.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].