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

/media/uploads/tvendov/front_view_hmi_50.png /media/uploads/tvendov/side_view_hmi_50.png

VKLCD70RT

/media/uploads/tvendov/front_view_hmi_70.png/media/uploads/tvendov/side_view_hmi_70.png /media/uploads/tvendov/front_view_lvds.png/media/uploads/tvendov/back_view_lvds.png


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.
      • After import in the online compiler just leave only the VKRZA1H_RAM.sct & delete all others linker files in the TOOLCHAIN_ARM_STD folder.
      • Save the result binary in the SD Card (<SD>:\vkrza1\lcd_sample ), altering vkrza1h.ini by this way
    • 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

Committer:
tvendov
Date:
Thu Feb 16 10:23:48 2017 +0000
Revision:
0:6435b67ad23c
Initial lcd support (VKLCD50RTA & VKLCD70RT companion boards)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tvendov 0:6435b67ad23c 1 /* mbed Microcontroller Library
tvendov 0:6435b67ad23c 2 * Copyright (c) 2006-2013 ARM Limited
tvendov 0:6435b67ad23c 3 *
tvendov 0:6435b67ad23c 4 * Licensed under the Apache License, Version 2.0 (the "License");
tvendov 0:6435b67ad23c 5 * you may not use this file except in compliance with the License.
tvendov 0:6435b67ad23c 6 * You may obtain a copy of the License at
tvendov 0:6435b67ad23c 7 *
tvendov 0:6435b67ad23c 8 * http://www.apache.org/licenses/LICENSE-2.0
tvendov 0:6435b67ad23c 9 *
tvendov 0:6435b67ad23c 10 * Unless required by applicable law or agreed to in writing, software
tvendov 0:6435b67ad23c 11 * distributed under the License is distributed on an "AS IS" BASIS,
tvendov 0:6435b67ad23c 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
tvendov 0:6435b67ad23c 13 * See the License for the specific language governing permissions and
tvendov 0:6435b67ad23c 14 * limitations under the License.
tvendov 0:6435b67ad23c 15 */
tvendov 0:6435b67ad23c 16 #ifndef SINGLETONPTR_H
tvendov 0:6435b67ad23c 17 #define SINGLETONPTR_H
tvendov 0:6435b67ad23c 18
tvendov 0:6435b67ad23c 19 #include <stdint.h>
tvendov 0:6435b67ad23c 20 #include <new>
tvendov 0:6435b67ad23c 21 #include "mbed_assert.h"
tvendov 0:6435b67ad23c 22 #ifdef MBED_CONF_RTOS_PRESENT
tvendov 0:6435b67ad23c 23 #include "cmsis_os.h"
tvendov 0:6435b67ad23c 24 #endif
tvendov 0:6435b67ad23c 25
tvendov 0:6435b67ad23c 26 #ifdef MBED_CONF_RTOS_PRESENT
tvendov 0:6435b67ad23c 27 extern osMutexId singleton_mutex_id;
tvendov 0:6435b67ad23c 28 #endif
tvendov 0:6435b67ad23c 29
tvendov 0:6435b67ad23c 30 /** Lock the singleton mutex
tvendov 0:6435b67ad23c 31 *
tvendov 0:6435b67ad23c 32 * This function is typically used to provide
tvendov 0:6435b67ad23c 33 * exclusive access when initializing a
tvendov 0:6435b67ad23c 34 * global object.
tvendov 0:6435b67ad23c 35 */
tvendov 0:6435b67ad23c 36 inline static void singleton_lock(void)
tvendov 0:6435b67ad23c 37 {
tvendov 0:6435b67ad23c 38 #ifdef MBED_CONF_RTOS_PRESENT
tvendov 0:6435b67ad23c 39 osMutexWait(singleton_mutex_id, osWaitForever);
tvendov 0:6435b67ad23c 40 #endif
tvendov 0:6435b67ad23c 41 }
tvendov 0:6435b67ad23c 42
tvendov 0:6435b67ad23c 43 /** Unlock the singleton mutex
tvendov 0:6435b67ad23c 44 *
tvendov 0:6435b67ad23c 45 * This function is typically used to provide
tvendov 0:6435b67ad23c 46 * exclusive access when initializing a
tvendov 0:6435b67ad23c 47 * global object.
tvendov 0:6435b67ad23c 48 */
tvendov 0:6435b67ad23c 49 inline static void singleton_unlock(void)
tvendov 0:6435b67ad23c 50 {
tvendov 0:6435b67ad23c 51 #ifdef MBED_CONF_RTOS_PRESENT
tvendov 0:6435b67ad23c 52 osMutexRelease (singleton_mutex_id);
tvendov 0:6435b67ad23c 53 #endif
tvendov 0:6435b67ad23c 54 }
tvendov 0:6435b67ad23c 55
tvendov 0:6435b67ad23c 56 /** Utility class for creating an using a singleton
tvendov 0:6435b67ad23c 57 *
tvendov 0:6435b67ad23c 58 * @Note Synchronization level: Thread safe
tvendov 0:6435b67ad23c 59 *
tvendov 0:6435b67ad23c 60 * @Note: This class must only be used in a static context -
tvendov 0:6435b67ad23c 61 * this class must never be allocated or created on the
tvendov 0:6435b67ad23c 62 * stack.
tvendov 0:6435b67ad23c 63 *
tvendov 0:6435b67ad23c 64 * @Note: This class is lazily initialized on first use.
tvendov 0:6435b67ad23c 65 * This class is a POD type so if it is not used it will
tvendov 0:6435b67ad23c 66 * be garbage collected.
tvendov 0:6435b67ad23c 67 */
tvendov 0:6435b67ad23c 68 template <class T>
tvendov 0:6435b67ad23c 69 struct SingletonPtr {
tvendov 0:6435b67ad23c 70
tvendov 0:6435b67ad23c 71 /** Get a pointer to the underlying singleton
tvendov 0:6435b67ad23c 72 *
tvendov 0:6435b67ad23c 73 * @returns
tvendov 0:6435b67ad23c 74 * A pointer to the singleton
tvendov 0:6435b67ad23c 75 */
tvendov 0:6435b67ad23c 76 T* get() {
tvendov 0:6435b67ad23c 77 if (NULL == _ptr) {
tvendov 0:6435b67ad23c 78 singleton_lock();
tvendov 0:6435b67ad23c 79 if (NULL == _ptr) {
tvendov 0:6435b67ad23c 80 _ptr = new (_data) T();
tvendov 0:6435b67ad23c 81 }
tvendov 0:6435b67ad23c 82 singleton_unlock();
tvendov 0:6435b67ad23c 83 }
tvendov 0:6435b67ad23c 84 // _ptr was not zero initialized or was
tvendov 0:6435b67ad23c 85 // corrupted if this assert is hit
tvendov 0:6435b67ad23c 86 MBED_ASSERT(_ptr == (T *)&_data);
tvendov 0:6435b67ad23c 87 return _ptr;
tvendov 0:6435b67ad23c 88 }
tvendov 0:6435b67ad23c 89
tvendov 0:6435b67ad23c 90 /** Get a pointer to the underlying singleton
tvendov 0:6435b67ad23c 91 *
tvendov 0:6435b67ad23c 92 * @returns
tvendov 0:6435b67ad23c 93 * A pointer to the singleton
tvendov 0:6435b67ad23c 94 */
tvendov 0:6435b67ad23c 95 T* operator->() {
tvendov 0:6435b67ad23c 96 return get();
tvendov 0:6435b67ad23c 97 }
tvendov 0:6435b67ad23c 98
tvendov 0:6435b67ad23c 99 // This is zero initialized when in global scope
tvendov 0:6435b67ad23c 100 T *_ptr;
tvendov 0:6435b67ad23c 101 // Force data to be 4 byte aligned
tvendov 0:6435b67ad23c 102 uint32_t _data[(sizeof(T) + sizeof(uint32_t) - 1) / sizeof(uint32_t)];
tvendov 0:6435b67ad23c 103 };
tvendov 0:6435b67ad23c 104
tvendov 0:6435b67ad23c 105 #endif
tvendov 0:6435b67ad23c 106