Giter Club home page Giter Club logo

athrill-target's People

Contributors

esm-tmori avatar hisatsugushiine avatar takasehideki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

athrill-target's Issues

stx/stbで負の値を扱った場合、符号拡張がされていない

stxで負の値を扱った場合に正しく符号拡張されずにレジスタに入る。

stx r10

で実行した際のログは以下のように出る。
0x16a8: SXH r10(-1):65535

本来符号拡張されているので、後ろの値は2^16-1ではなく、2^32-1にならないといけない。

変数宣言しているtmpがuint16で定義されていて、その値で書き戻していたのが間違い。
同様の不具合がsxbにもあったので、それも修正。

ETロボコン向けシミュレータ時刻同期周りのスレッド競合の可能性

Unityからの時刻同期およびセンシング情報は,athrill内のスレッドでUDPパケット受信し,そのデータをレジスタ用のバッファにコピーしている.

このUDPスレッドは,CPU駆動で実行するスレッドと排他していないので,競合する可能性がある.修正方法は単純で,これらのスレッド間で共有データアクセスする際に排他をかければよい.

通信仕様5/17版対応

通信仕様の変更に対応

MOTOR_ANGLE_Xは原実装に合わせて仕様を変更
バッテリ関係の追加
Athrill側からの通信にジャイロリセットを追加。ジャイロリセットは一度設定したら(UDPパケットが飛んだら)すぐに戻す(flushした際にこのデータをクリアする)。このため、mmap形式では対応できないものとなるが、ひとまずこれで運用。

ETロボコンシミュレータ通信仕様.xlsx

video.hの定義間違い

videv.h内の定義でTXとなるべきところがRXと鳴っていたところがあったので修正。
RX/TXでヘッダサイズが今のところ同じなので、問題なかったが修正しておく

下のコード

#define VDEV_TX_DATA_BODY_OFF	VDEV_RX_DATA_HEAD_SIZE
#define VDEV_TX_DATA_BODY_SIZE	(VDEV_TX_DATA_COMM_SIZE - VDEV_RX_DATA_HEAD_SIZE)

Decode Errorが出ました

-- Error --
Powered by TOPPERS/HRP2 RTOS
Initialization is completed..
System logging task is started on port 3.
Decode Error
CPU(pc=0x180106e0) Exception!!
-- objdump --
180106e0: e15b10fa ldrsh r1, [fp, #-10]
180106e4: e3063667 movw r3, #26215 ; 0x6667
180106e8: e3463666 movt r3, #26214 ; 0x6666
180106ec: e0c32391 smull r2, r3, r1, r3

build_macのMakefile修正

macでコンパイルした際にvdev関係のシンボルがないとエラーになる。

Makefile.deviceを修正する

ev3rt/asp3の起動時間が遅い

appheap が1MB設定されており,スタートアップ時のゼロクリア処理において,本データの初期化で時間がかかっている模様.

vdev_udp_put_data8で正しく値がセットされない

EV3のev3_led_set_color()が動作しない件の調査で発見

uint32 off = (addr - region->start);

となっており、オフセット分が追加されていなかった。
フラグの方は実際に値が設定されなくてもUDP送信自体はするので、問題となっていなかった。

C++のグローバルコンストラクタが呼ばれない

ev3rtではev3api.cの中でグローバルコンストラクタが呼ばれているが、そこがコメントアウトされている。

また、init_arrayにコンストラクタテーブルが入るようにリンカスクリプトを書き換える。
target/v850_gcc/v850es_fk3.ld

___init_table_start = .;
(*.ctors)

とする

単精度命令の未サポート4件の対応

float(単精度)の命令でサポートされていなかった
以下の4つの対応を行う。
・MADDF.S
・MSUBF.S
・NMADDF.S
・NMSUBF.S

とりあえず通常の値であれば動作するようにする。

Decode Errorが出ました

-- Error --
Powered by TOPPERS/HRP2 RTOS
Initialization is completed..
System logging task is started on port 3.
Decode Error
CPU(pc=0x18005330) Exception!!

-- objdump --
18005330: e2233001 eor r3, r3, # 1
18005334: e6ef3073 uxtb r3, r3
18005338: e3530000 cmp r3, #0
1800533c: 0a000013 beq 18005390 <get_nextaction+0x200>
18005340: e3043044 movw r3, #16452 ; 0x4044

ETロボコンシミュレータ向け時刻同期用パラメータの追加

現状,athrillからUnityに送信する時刻同期およびアクチュエータ情報の通知タイミングはEV3RTからAPI呼び出しを契機としている.

EV3RT側の変更があった場合,時刻同期タイミングが変わってしまうため,athrill側で時刻同期タイミングを調整できるようにすべきと考えている.

not supported:v850 double型の命令セットのデコーダがない

以下の命令セットのデコーダが欲しい.
・ABSF.D
・DIVF.D
・MAXF.D
・MINF.D
・NEGF.D
・RECIPF.D
・RSQRTF.D
・SQRTF.D
・SUBF.D
・CEILF.DL :Floating-point Truncate to Integer Format, rounded toward +∞(Double)
・CEILF.DW :Floating-point Truncate to Integer Format, rounded toward +∞(Double)
・CEILF.DUL :Floating-point Truncate to Unsigned Long, rounded toward +∞(Double)
・CEILF.DUW :Floating-point Truncate to Unsigned Word, rounded toward +∞(Double)
・CVTF.DL :Floating-point Convert to Integer Format(Double)
・CVTF.DUL :Floating-point Convert Double to Unsigned-Long(Double)
・CVTF.DUW :Floating-point Convert Double to Unsigned-Word(Double)
・CVTF.DW :Floating-point Convert to Integer Format(Double)
・CVTF.LD :Floating-point Convert to Double Floating-point Format(Double)
・CVTF.ULD :Floating-point Convert Unsigned-Long to Double(Double)
・CVTF.UWD :Floating-point Convert Unsigned-Word to Double(Double)
・CVTF.WD :Floating-point Convert to Double Floating-point Format(Double)
・FLOORF.DL :Floating-point Truncate to Integer Format, rounded toward -∞(Double)
・FLOORF.DW :Floating-point Truncate to Integer Format, rounded toward -∞(Double)
・FLOORF.DUL :Floating-point Truncate to Unsigned Long, rounded toward -∞(Double)
・FLOORF.DUW :Floating-point Truncate to Unsigned Word, rounded toward -∞(Double)
・TRNCF.DL :Floating-point Truncate to Integer Format, rounded to zero(Double)
・TRNCF.DUL :Floating-point Truncate Double to Unsigned-Long(Double)
・TRNCF.DUW :Floating-point Truncate Double to Unsigned-Word(Double)
・TRNCF.DW :Floating-point Truncate to Integer Format, rounded to zero(Double)
・CMPF.D :Compares floating-point values(Double)
・CMOVF.D :Floating-point conditional move(Double)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.