Frosted

From Hackerspace Brussels
Jump to: navigation, search


Frosted
Tue 07 Jun 2016 19:00
till Tue 07 Jun 2016 23:59
Norbert.jpg
What:
frosted os
Tagline:
Free OS for ARM, by brabo
Where:
HSB Brussels,Belgium
Cost:
0
Who:
anyone
URL:


Title: Frosted / Free O.S. for tiny embedded devices

We are glad to present our project called FROSTED, which is an acronym of Free OS for tiny embedded devices.

A few months ago, we decided to start writing an operating system from scratch, that would run on small microcontrollers, such as ARM Cortex-M CPUs.

The status of the project now is very promising: We have a working POSIX interface to interact with the kernel, a real multi-processing environment, a toolchain to compile our applications, TCP/IP networking, a wide range of device drivers, and much, much more.

Frosted is a multi-purpose OS. Our current research is focusing on http-based distributed services (IoT platform) as well as porting interesting open source retro-games (an initial port of the shareware version of DOOM is already working).

At this moment there is hardware support in frosted for STM32F4/F7. There is also support for the LPC17xx family, albeit not properly tested yet. Frosted can also run in QEMU, so also without any hardware it is possible to develop for Frosted.

The goal of this workshop would be to introduce the audience to use the OS and port standard C application to run on it, because this does not require any specific knowledge on embedded devices or operating systems in general.

If there is enough interest from the crowd attending, we could go deeper in the kernel internals, porting strategies and device drivers. After all, system programming is still very exciting and it's not as hard as it's often depicted.

The proposed timeline would be: a short introduction on the purpose of the project (max 20 minutes), then show the various components and repository on github.

A guided toolchain installation for the attendees, then an interactive session where the attendees will be asked to either port their favorite small application to frosted, or to initiate a porting towards their preferred ARM board. While the interactive session is ongoing, introduce kernel and libc currently implemented features starting from audience's questions. The session will terminate with the project guidelines and everything required to contribute.

Proposed time/date: tuesday 07/06/2016 around 19:00, HSBXL

Pre-requisites: some knowledge of the C programming language is the only mandatory requirement. The workshop can be adapted to cover different parts and components of the project. For joining the interactive session, the participant should bring a laptop with the essential gnu-tools to compile executables, and install the arm-frosted-eabi toolchain. If you have an ARM board, please do bring it!

Links: https://github.com/insane-adding-machines/frosted https://github.com/insane-adding-machines/crosstool-ng/releases

The Frosted Team.

Notes[edit]

Daniele gave quick introduction into architecture of Frosted

Quick snap of whiteboard :FrostedWorkshopWhiteboard.jpg


https://github.com/insane-adding-machines/frosted

https://github.com/insane-adding-machines/crosstool-ng/releases

https://github.com/insane-adding-machines/frosted.git


seee also https://github.com/insane-adding-machines/frosted/wiki


DOOM Video: https://owncloud.trexotech.com/index.php/s/ml3NN93XV5oNEij

Jenkins: http://www.trexotech.com:8080

Cortex-M7 kconfig/.config: http://pastebin.com/LPJDRQmM


syscall numbering table:

# pwd
/home/ptr/frosted-ws/frosted/kernel
# vi syscall_table_gen.py 


get a fresh (frosted shell) console :

  • stm32f407xG board (early stm discovery)
  • enable serial port UART3 (in DeviceDrivers submenu) -- none are selected by default !
  • pins Rx Tx : PD8 and PD9 (3.3V !)
  • connect with serial adapter, 115200 8N1
# cfr. ps 
cat /sys/tasks
# kill 'idling' process, blinking the leds
kill 2 


st-flash (compile from source : https://github.com/texane/stlink )

  1. st-flash write image.bin 0x8000000