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/arch/arm_gcc/common/arm_insn.h

    r321 r429  
    55 *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
    66 *                              Toyohashi Univ. of Technology, JAPAN
    7  *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
     7 *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
     
    105105 *  Thumbモードではmrs/msr命令が使用できないため,関数として実現して,
    106106 *  ARMモードに移行して実行する.
     107 *
     108 *  current_cpsrとset_cpsrは,__thumb__が定義されない場合にはヘッダファ
     109 *  イル中で定義されるインライン関数になるため,core_rename.defに登録
     110 *  せず,先頭の_kernel_を手書きしている.
    107111 */
    108112
     
    110114 *  ステータスレジスタ(CPSR)の現在値の読出し
    111115 */
    112 extern uint32_t current_cpsr(void);
     116extern uint32_t _kernel_current_cpsr(void);
     117#define current_cpsr()  _kernel_current_cpsr()
    113118
    114119/*
    115120 *  ステータスレジスタ(CPSR)の現在値の変更
    116121 */
    117 extern void set_cpsr(uint32_t cpsr);
     122extern void _kernel_set_cpsr(uint32_t cpsr);
     123#define set_cpsr(cpsr)  _kernel_set_cpsr(cpsr)
    118124
    119125#endif /* __thumb__ */
     
    220226#define CP15_READ_ACTLR(reg)    Asm("mrc p15, 0, %0, c1, c0, 1":"=r"(reg))
    221227#define CP15_WRITE_ACTLR(reg)   Asm("mcr p15, 0, %0, c1, c0, 1"::"r"(reg))
     228
     229/* コプロセッサアクセス制御レジスタ */
     230#define CP15_READ_CPACR(reg)    Asm("mrc p15, 0, %0, c1, c0, 2":"=r"(reg))
     231#define CP15_WRITE_CPACR(reg)   Asm("mcr p15, 0, %0, c1, c0, 2"::"r"(reg))
    222232
    223233/*
     
    293303
    294304/* ドメインアクセス制御レジスタ */
    295 #define CP15_WRITE_DACR(reg)    Asm("mcr p15, 0, %0, c3, c0, 0":: "r"(reg))
     305#define CP15_WRITE_DACR(reg)    Asm("mcr p15, 0, %0, c3, c0, 0"::"r"(reg))
    296306
    297307/* コンテキストIDレジスタ(ARMv6以降)*/
    298308#if __TARGET_ARCH_ARM >= 6
    299 #define CP15_WRITE_CONTEXTIDR(reg) Asm("mcr p15, 0, %0, c13, c0, 1" ::"r"(reg))
     309#define CP15_WRITE_CONTEXTIDR(reg) Asm("mcr p15, 0, %0, c13, c0, 1"::"r"(reg))
    300310#endif /* __TARGET_ARCH_ARM >= 6 */
    301311
     
    415425
    416426#endif /* __TARGET_ARCH_ARM == 7 */
     427
     428/*
     429 *  浮動小数点例外制御レジスタ(FPEXC)の現在値の読出し
     430 */
     431Inline uint32_t
     432current_fpexc(void)
     433{
     434        uint32_t        fpexc;
     435
     436        Asm("vmrs %0, fpexc" : "=r"(fpexc));
     437        return(fpexc);
     438}
     439
     440/*
     441 *  浮動小数点例外制御レジスタ(FPEXC)の現在値の変更
     442 */
     443Inline void
     444set_fpexc(uint32_t fpexc)
     445{
     446        Asm("vmsr fpexc, %0" : : "r"(fpexc));
     447}
     448
    417449#endif /* TOPPERS_ARM_INSN_H */
Note: See TracChangeset for help on using the changeset viewer.