zoukankan      html  css  js  c++  java
  • rtems floating poing switch

    https://lists.rtems.org/pipermail/users/2019-December/067321.html

    Hello, world
    
    
    I have a question about the use of trap 4 by RTEMS on Sparc32 (leon3).
    Since our app needs FP, we set the PSR[EF] bit during the boot process before RTEMS is invoked.
    Since we don't expect the fp_disabled trap (4) to occur, we install a fatal handler for it with
    rtems_interrupt_catch(&fatalTrapHandler, 4, &old);
    
    However, the fatalTrapHandler is invoked a short time after application start (we use the Init() task
    and start a handful of additional tasks, all of which have attribute RTEMS_FLOATING_POINT)
    and the PSR[EF] bit is indeed cleared. None of our tasks
    clears that bit, so we suspect RTEMS does it for some reason.
    
    Question: is an RTEMS/sparc application allowed to install a handler for trap 4? I could not find an
    answer in the docs for SPARC Specific Information.
    
    Thanks for any insight!
    Regards, Jens
    
    
    ________________________________
    
    Tesat-Spacecom GmbH & Co. KG
    Sitz: Backnang; Registergericht: Amtsgericht Stuttgart HRA 270977
    Persoenlich haftender Gesellschafter: Tesat-Spacecom Geschaeftsfuehrungs GmbH;
    Sitz: Backnang; Registergericht: Amtsgericht Stuttgart HRB 271658;
    Geschaeftsfuehrung: Dr. Marc Steckling, Kerstin Basche, Ralf Zimmermann
    #if defined(SPARC_USE_LAZY_FP_SWITCH)
      FPDIS_TRAP(SYM(syscall_lazy_fp_switch));      ! 04 fp disabled
    40000040:a1 48 00 00 rd  %psr, %l0
    40000044:29 10 00 bd sethi  %hi(0x4002f400), %l4
    40000048:81 c5 22 00 jmp  %l4 + 0x200! 4002f600 <syscall_lazy_fp_switch>
    4000004c:27 00 00 04 sethi  %hi(0x1000), %l3
    #else
      BAD_TRAP;                                     ! 04 fp disabled
    #endif

    源码目录下有sparc相关的内容:

    rtems-4.6.0csrcliblibbspsparcshared

    E:projectobsw tems-4.6.0cpukitscorecpusparccpu.c

    _CPU_Initialize

    _CPU_ISR_install_vector

    _CPU_Context_Initialize

  • 相关阅读:
    java优雅的使用elasticsearch api
    springboot mybatis优雅的添加多数据源
    java通过shield链接Elasticsearch
    java spark-streaming接收TCP/Kafka数据
    hiveQL求差集
    hiveQL去重
    Ubuntu16.04+Opencv3.3的安装教程
    TensorFlow池化层-函数
    TensorFlow激活函数+归一化-函数
    TensorFlow图像预处理-函数
  • 原文地址:https://www.cnblogs.com/yanhc/p/12640724.html
Copyright © 2011-2022 走看看