Ignore:
Timestamp:
Jul 3, 2020, 7:19:17 PM (4 years ago)
Author:
coas-nagasima
Message:

ASP3, TINET, mbed を更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.c

    r321 r429  
    33 *      Toyohashi Open Platform for Embedded Real-Time Systems/
    44 *      Advanced Standard Profile Kernel
    5  *
    6  *  Copyright (C) 2007-2016 by Embedded and Real-Time Systems Laboratory
     5 * 
     6 *  Copyright (C) 2007-2018 by Embedded and Real-Time Systems Laboratory
    77 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    8  *
     8 * 
    99 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    1010 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     
    2929 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
    3030 *      免責すること.
    31  *
     31 * 
    3232 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
    3333 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     
    3535 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    3636 *  の責任を負わない.
    37  *
     37 * 
    3838 *  $Id$
    3939 */
     
    4848#include "rza1.h"
    4949#include "scif.h"
    50 #include "core_pl310.h"
    51 #include "us_ticker_api.h"
     50
     51/*
     52 * C++のグローバルコンストラクタ呼び出し
     53 */
     54void __libc_init_array()
     55{
     56        /* グローバルコンストラクタでOS APIを呼び出す場合は、
     57           タスクが起動してから行う */
     58}
    5259
    5360/*
     
    6370 *  MMUへの設定属性(第1レベルディスクリプタ)
    6471 */
    65 #define MMU_ATTR_RAM    (ARM_MMU_DSCR1_SHARED|ARMV6_MMU_DSCR1_APX0 \
    66                                                         |ARM_MMU_DSCR1_TEX001|ARM_MMU_DSCR1_AP11 \
    67                                                         |ARM_MMU_DSCR1_CB11)
    68 #define MMU_ATTR_IODEV  (ARM_MMU_DSCR1_SHARED|ARMV6_MMU_DSCR1_APX0 \
    69                                                         |ARM_MMU_DSCR1_TEX000|ARM_MMU_DSCR1_AP11 \
    70                                                         |ARM_MMU_DSCR1_CB01|ARMV6_MMU_DSCR1_NOEXEC)
     72#define MMU_ATTR_RAM    (ARM_MMU_DSCR1_SHARED|ARM_MMU_DSCR1_TEX001 \
     73                                                        |ARMV6_MMU_DSCR1_AP011|ARM_MMU_DSCR1_CB11)
     74#define MMU_ATTR_IODEV  (ARM_MMU_DSCR1_SHARED|ARM_MMU_DSCR1_TEX000 \
     75                                                        |ARMV6_MMU_DSCR1_AP011|ARM_MMU_DSCR1_CB01 \
     76                                                        |ARMV6_MMU_DSCR1_NOEXEC)
     77
    7178/*
    7279 *  MMUの設定情報(メモリエリアの情報)
    7380 */
    74 ARM_MMU_CONFIG arm_memory_area[] = {
     81const ARM_MMU_CONFIG arm_memory_area[] = {
    7582        { SPI_ADDR, SPI_ADDR, SPI_SIZE, MMU_ATTR_RAM },
    7683        { SRAM_ADDR, SRAM_ADDR, SRAM_SIZE, MMU_ATTR_RAM },
     
    206213 *  システムログの低レベル出力のための初期化
    207214 *
    208  *  セルタイプtPutLogGRPeach内に実装されている関数を直接呼び出す.
    209  */
    210 extern void     tPutLogGRPeach_initialize(void);
     215 *  セルタイプtPutLogSIOPort内に実装されている関数を直接呼び出す.
     216 */
     217extern void     tPutLogSIOPort_initialize(void);
    211218
    212219/*
     
    244251
    245252        /*
    246          *  L2キャッシュコントローラ(PL310)の初期化
    247          */
    248         /*pl310_initialize(0x0U, ~0x0U);*/
    249 
    250         /*
    251253         *  LEDを青色に点灯させる
    252254         */
     
    254256
    255257        /*
    256          *  低レベル出力用にSIOを初期化
     258         *  SIOを初期化
    257259         */
    258260#ifndef TOPPERS_OMIT_TECS
    259         tPutLogGRPeach_initialize();
     261        tPutLogSIOPort_initialize();
    260262#endif /* TOPPERS_OMIT_TECS */
    261263}
     
    268270{
    269271        static int first = 1;
     272        extern void    software_term_hook(void);
     273        void (*volatile fp)(void) = software_term_hook;
     274
     275        /*
     276         *  software_term_hookへのポインタを,一旦volatile指定のあるfpに代
     277         *  入してから使うのは,0との比較が最適化で削除されないようにするた
     278         *  めである.
     279         */
     280        if (fp != 0) {
     281                (*fp)();
     282        }
    270283
    271284        /*
     
    293306        rza1_config_port(RZA1_PORT_P(6), led, set);
    294307}
    295 
    296 void us_ticker_init(void)
    297 {
    298 }
    299 
    300 uint32_t us_ticker_read()
    301 {
    302         ER ret;
    303         SYSTIM now;
    304 
    305         ret = get_tim(&now);
    306         if(ret != E_OK)
    307                 return 0;
    308 
    309         return now;
    310 }
    311 
    312 void us_ticker_set_interrupt(timestamp_t timestamp)
    313 {
    314         Asm("bkpt #0");
    315 }
    316 
    317 void us_ticker_disable_interrupt(void)
    318 {
    319 }
    320 
    321 void us_ticker_clear_interrupt(void)
    322 {
    323 }
    324 
    325 void wait(float s)
    326 {
    327         wait_us(s * 1000000.0f);
    328 }
    329 
    330 void wait_ms(int ms)
    331 {
    332         wait_us(ms * 1000);
    333 }
    334 
    335 void wait_us(int us)
    336 {
    337         ER ret;
    338 
    339         ret = dly_tsk(us);
    340         if (ret == E_CTX){
    341                 uint32_t start = us_ticker_read();
    342                 while ((us_ticker_read() - start) < (uint32_t)us);
    343         }
    344 }
Note: See TracChangeset for help on using the changeset viewer.