This is a collection of Firmware/Example Applications for the Bouffalo Range of Chips utilizing the [Bouffalo MCU SDK](https://github.com/bouffalolab/bl_mcu_sdk/)
* Useful Libraries ported to the Boufallo Range of Chips
* cmake/
* Support Files for CMake/Make and Kconfig
* bsp/
* Board Support Packages for different boards using the Bouffalo Range of Chips
* tools/
* Various Tools
## Included Apps
* HelloWorld
* LowLoad
* lowload firmware is used to assist Linux to boot on the BL808 Device. Please consult the [OpenBouffalo Buildroot repo](https://github.com/openbouffalo/buildroot_bouffalo) for more information
You can use "make flash" to flash the firmware from the commandline instead of using the BLDevCube. By Default, the apps are configured to flash to the M0 core, but you can specify the core to flash to by modifying the flash_prog_cfg.ini file in the root of the project.
* For M0 set address = 0x000000
* For D0 set address = 0x100000
* For LP set address = 0x200000
If you are flashing from BLDevCube, set the CPU to Group0 and use the following addresses for the different cores:
(you may need to modify the cmake/flash.cmake file to specify the correct serial port for your device, or during the initial build, set the COMX enviroment variable to your serial port)
The Bouffalo SDK provides numerous configuration options, enabled via the proj.conf in a standard bl_mcu_sdk project. This repository has enabled menuconfig, to give a graphical interface to enable/disable features in the SDK. You can enter the configuration dialog by running in each applications directory:
Default Configuration Options for a application are saved in ```sdkconfig.default```, and when a project is built, a ```sdkconfig``` is created (and may be edited by hand, or updated with ```make config```).
```build/config/sdkconfig.h``` header file is also created when compiling, and any configuration options that affect cmake are placed into ```proj.conf```
If a Application has a specific configuration options, a ```Kconfig``` file can be placed in the root of the application directory and it will be picked up automatically
*If you wish to help out, updating the [cmake/Kconfig](cmake/Kconfig) with additional/new options or help text is greatly appreciated*
## Specifying Different CPU's or Cores
This SDK still respects the following commands to specify different CPU's/cores etc: