Although other venders implement this feature by using RTC, in my H/W(RZ_A1), I cannot use RTC because it does not satisfy the spec of LP Ticker (ms order and low frequency between 8 KHz and 64 KHz). Therefore I implemented this feature by creating 1024 division by MTU2(Multi function Timer pulse Unit 2) in order to satisfy this spec. As a result of investigating, the most unaffected channel among MTU2 placed on GR-PEACH and GR-LYCHEE was channel 3, so I use channel 3 for this feature. - mbed_drv_cfg.h I added a macro of MTU2 channel to this file for commonalizing code for GR-PEACH and GR-LYCHEE, and referenced it's macro at us_ticker.c. - targets.json I added a macro for enabling LP Ticker. - mtu2.c mtu2.h I defined fuction of MTU2's clock supply and stop. Because MTU2 is utilized by pwm driver too, those function were referenced at lp_ticker driver and pwm driver. - lp_ticker.c lp_ticker_init() In order to satisfy the LP Ticker spec, I implemented by creating 1024 division by MTU2. When an interrupt is required, it will be set with ticker_set_interrupt(). - lp_ticker.c lp_ticker_free() This function stops the counting and powerdown the lp_ticker. - lp_ticker.c lp_read() This function returns the timer counter of MTU2. - lp_ticker.c lp_ticker_set_interrupt() In order to satisfy specifications, I implemented lp_ticker_set_interrupt() function. - lp_ticker.c lp_ticker_fire_interrupt() In order to satisfy spec, I implemented lp_ticker_fire_interrupt() function. Also I added GIC_EnableIRQ for allowing the interrupt at end of function. - lp_ticker.c lp_ticker_get_info() To satisfy the spec, I implemented lp_ticker_get_info() function. The value of freq includes rounding off. |
||
---|---|---|
.github | ||
TESTS | ||
cmsis | ||
drivers | ||
events | ||
features | ||
hal | ||
platform | ||
rtos | ||
targets | ||
tools | ||
.astyleignore | ||
.astylerc | ||
.coveragerc | ||
.gitattributes | ||
.gitignore | ||
.pylintrc | ||
.travis.yml | ||
CONTRIBUTING.md | ||
DOXYGEN_FRONTPAGE.md | ||
Jenkinsfile | ||
LICENSE | ||
README.md | ||
doxyfile_options | ||
doxygen_options.json | ||
logo.png | ||
mbed.h | ||
requirements.txt |
README.md
Arm Mbed OS is an open source embedded operating system designed specifically for the "things" in the Internet of Things. It includes all the features you need to develop a connected product based on an Arm Cortex-M microcontroller, including security, connectivity, an RTOS and drivers for sensors and I/O devices.
Mbed OS provides a platform that includes:
- Security foundations.
- Cloud management services.
- Drivers for sensors, I/O devices and connectivity.
Release notes
The release notes detail the current release. You can also find information about previous versions.
Getting started for developers
We have a developer website for asking questions, engaging with others, finding information on boards and components, using an online IDE and compiler, reading the documentation and learning about what's new and what's coming next in Mbed OS.
Getting started for contributors
We also have a contributing and publishing guide that covers licensing, contributor agreements and style guidelines.