Lcd companion boards support (VKLCD50RTA & VKLCD70RT)
What is this ?
This is a demo program using Renesas RGA library & USB Camera to demonstrate VK-RZ/A1H's companion boards workability.
Supported companion Boards:
VKLCD50RTA
VKLCD70RT
How to Configure ?
You can choose which display is installed by altering the lcd_panel.h file
Leave the active one & comment out the others:
#define LCD_VDC5_CH0_PANEL LCD_CH0_PANEL_VKLCD50RTA //#define LCD_VDC5_CH0_PANEL LCD_CH0_PANEL_VKLCD70RT
You can alter the whole demo with your pictures if you like:
How to compile ?
- The Demo can be compiled in 3 modes:
- I. Execution from the internal 10-MB on-chip SRAM.
- II. Execution from the on-board serial FALSH in dual (32-MB) mode.
- After import in the online compiler just leave only the VKRZA1H_DOUBLE.sct & delete all others linker files in the TOOLCHAIN_ARM_STD folder.
- Drag & drop the result binary in MBED disk, (previously inited in double flash mode)
- III. Execution from the on-board serial FALSH in single (16-MB) mode.
- After import in the online compiler just leave only the VKRZA1H_SINGLE.sct & delete all others linker files in the TOOLCHAIN_ARM_STD folder.
- Drag & drop the result binary in MBED disk, (previously inited in single flash mode )
Quick presentation:
Other demos ?
More demos you can find on our FTP
hal/common/CallChain.cpp
- Committer:
- tvendov
- Date:
- 2017-02-16
- Revision:
- 0:6435b67ad23c
File content as of revision 0:6435b67ad23c:
#include "CallChain.h" #include "cmsis.h" #include "critical.h" namespace mbed { class CallChainLink { public: CallChainLink(): cb(), next(NULL) { // No work to do } CallChainLink(Callback<void()> &callback): cb(callback), next(NULL) { // No work to do } Callback<void()> cb; CallChainLink * next; }; CallChain::CallChain(int size) : _chain(NULL) { // No work to do } CallChain::~CallChain() { clear(); } pFunctionPointer_t CallChain::add(Callback<void()> func) { CallChainLink *new_link = new CallChainLink(func); if (NULL == _chain) { _chain = new_link; return &new_link->cb; } CallChainLink *link = _chain; while (true) { if (NULL == link->next) { link->next = new_link; return &new_link->cb; } link = link->next; } } pFunctionPointer_t CallChain::add_front(Callback<void()> func) { CallChainLink *link = new CallChainLink(func); link->next = _chain; _chain = link->next; return &link->cb; } int CallChain::size() const { CallChainLink *link = _chain; int elements = 0; while (link != NULL) { elements++; link = link->next; } return elements; } pFunctionPointer_t CallChain::get(int idx) const { CallChainLink *link = _chain; for (int i = 0; i < idx; i++) { if (NULL == link) { break; } link = link->next; } return &link->cb; } int CallChain::find(pFunctionPointer_t f) const { CallChainLink *link = _chain; int i = 0; while (link != NULL) { if (f == &link->cb) { return i; } i++; link = link->next; } return -1; } void CallChain::clear() { CallChainLink *link = _chain; _chain = NULL; while (link != NULL) { CallChainLink *temp = link->next; delete link; link = temp; } } bool CallChain::remove(pFunctionPointer_t f) { CallChainLink *link = _chain; while (link != NULL) { if (f == &link->cb) { delete link; return true; } link = link->next; } return false; } void CallChain::call() { CallChainLink *link = _chain; while (link != NULL) { link->cb.call(); link = link->next; } } } // namespace mbed