Skip to content

Bare metal code examples for Allwinner's F1C100S (F1C200S) SOC

Notifications You must be signed in to change notification settings

minilogic/f1c_nonos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bare metal code examples for Allwinner's F1C100S (F1C200S) SOC

These examples work without any operating system environment. It's like programming simple microcontrollers or "old school" programming techniques. Examples can be used for educational purposes to teach low-level programming. All programs can be run on f1c_dbc computer, LicheePi Nano, MangoPi or CherryPi demoboards. Low-level framework is simple, but provides the following features:

  • work with graphic display modules: TV, TFT, HDMI (work in progress);
  • examples of working with communication interfaces: USB, UART, SPI, TWI(I2C);
  • playback and recording with built-in hardware audio codec;
  • USB Device/Host driver implementation;
  • µSD memory card support;
  • bootloader implementation from SPI-flash memory;
  • examples of integrating third-party libraries: FatFs, LVGL, LWIP, TinyGL, MP3 Decoder/Encoder...

intro

Project directories:

Name Description
doc Documentation
drv Low-level drivers
lib Third-party libraries
src/demo Classical demo effects
src/gui LVGL GUI-demo (LVGL7, LVGL9)
src/tinygl TinyGl 3D-demo examples
src/slideshow µSD & FatFs example (JPG-slideshow)
src/usbd USB-device examples
src/usbh USB-host examples
src/twi TWI(I2C) examples (RTC, TS)
src/lwip lwIP over USB-Ethernet adapter RTL8152B
src/audio Audio examples (MP3 Decoder/Encoder)
src/coremark CoreMark Benchmark
tools/sunxi Tools for loading and flashing the SOC
tools/zadig Windows tool for installing SOC-driver
tools/iperf TCP/IP speed test tool

Building: The project was built using make and gcc. The processor and platform type is specified in the common.mk file. The RAMSIZE variable can be 32M or 64M and specifies the F1C100S or F1C200S processor respectively. If the variable BRD=DBC_BOARD, then the f1c_dbc or LicheePi board can be used. If BRD=MANGO_BOARD, then MangoPi or CherryPi.

Useful links:

  1. XBOOT
  2. RT-Thread
  3. F1C200S Library
  4. F1C100S Projects
  5. F1C200s and F1C100s study
  6. WhyCan Forum

Disclaimer: The Software is furnished "AS IS", without warranty as to performance or results, and the entire risk as to performance or results is assumed by YOU. I disclaims all warranties, express, implied or otherwise, with regard to the Software, its use, or operation, including without limitation any and all warranties of merchantability, fitness for a particular purpose, and non-infringement of intellectual property rights.