HML_FwLib_STC11 is a member component of HML firmware library, providing a group of interface functions for users to operate on-chip resource of STC11 MCUs, including GPIO, IAP, timer, UART, external interrupt, power management and watchdog. The STC11 MCU is a kind of Intel MCS-51 based MCU which released by STC Micro(宏晶). Compared to STC10 series, STC11 provides dedicated wake-up timer for power down mode.
We intend to provide a lite and easy-use firmware library that can help future developers to complete projects based on STC11 MCUs more easily and quickly. All source codes are written in C language and for SDCC compiler, i.e., it can only be compiled by SDCC. This choice is motivated by the fact that SDCC is free and highly efficient, while there are very few examples of application about SDCC on the Internet. We hope that, as one of the early attempts to develop MCU projects using SDCC, this work will make SDCC become more popular among MCU developers.
Please visit detail page for more information to get started it!
- 🎯Based on SDCC compiler.
- Cover all on-chip resource of STC11 series MCUs.
- Open all source code on Github and licensed under the WTPL2.
- Readable code and provide examples to help you get started it.
Here is a list of the all on-chip peripheral drivers and examples that need to be ported.
Peripheral | Description | Status |
---|---|---|
extended bus | Intel 8080 bus receiver/transmitter | supported |
EXTI | extern interrupt | supported |
GPIO | I/O peripheral | supported |
IAP | in application programming | supported |
PWR | power management | supported |
RCC | reset & clock control | supported |
TIM | timer | supported |
UART | universal asynchronous receiver/transmitter | supported |
WDT | watchdog | supported |
- GNU Make(recommend)
- SDCC compiler
- [for Windows] Unix shell tools(msys, Cygwin, GNUwin32) needed by makefile for HML_FwLib_STC11
HML_FwLib_STC11
├─doc #store related documents about HML_FwLib_STC11
├─example #provide some example files with *.c format to help users learn about HML_FwLib_STC11
├─inc #include all header files(*.h) of HML_FwLib_STC11
├─obj #store all output files, including *.hex,*.ihx,*.lk,*.rel and others during compilation
├─src #store all source files(*.c) of HML_FwLib_STC11
├─usr #store makefile and a source file which includes main function
├─LICENSE #license of HML_FwLib_STC11
└─VERSION #version code of HML_FwLib_STC11
There are several parameters need to be configured by user manually.
In order to ensure the projects based on HML_FwLib_STC11 can be downloaded into the limited on-chip flash space of STC11 MCUs, the developers can modify the macro definition named __CONF_COMPILE_xxx
in conf.h to specify which piece of codewill take part in compilation, then it will reduce size of final .hex file. If user only use GPIO module, then user just need to enable __CONF_COMPILE_GPIO
macro in conf.h. Some macros for conditional compilation rely on others. For example, before you define the macro definition __CONF_COMPILE_RCC
, the macro __CONF_COMPILE_UTIL
should be defined, otherwise the compilation would be failed.
The macro mark frequency of clock source, including extern crystal oscillator or internal RC oscillating circuit, and it's defined in conf.h.
The macro mark the model of target MCU and is defined in conf.h.
There is a source file named test.c under usr directory, we have put a main function here. User can add and modify own code here, then enter make in terminal, the Makefile will work and complete compilation. Besides, user can enter make help to get all usages.
Certainly, you can just add inc and src directory into your project structure, and write your own makefile to build a custom project.
Welcome suggestions and contribution from you! You can fork it or contact us via [email protected].
HML_FwLib_STC11 is licensed under the WTFPL2.
member | role | |
---|---|---|
Amy Chung | Testing | [email protected] |
Weilun Fong | Director | [email protected] |