You are not logged in. This forum allows only logged in users to post. If you want to post in the forum, please log in.
Download
Entwicklung
Konto
Download
Entwicklung
Anmelden
Vergessen Konto/Passwort
Konto erstellen
Sprache
Hilfe
Sprache
Hilfe
×
Anmelden
Anmeldename
Passwort
×
Vergessen Konto/Passwort
Übersetzungsstatus von Deutsch
Kategorie:
Software
Personen
PersonalForge
Magazine
Wiki
Suche
OSDN
>
Finden Software
>
System
>
Operating System Kernels
>
Hyper Operating System(ITRON仕様OS)
>
Foren
>
Entwickler
>
HOS-V4 sh2 pacctx.s
Hyper Operating System(ITRON仕様OS)
Fork
Beschreibung
Projekt Zusammenfassung
Entwickler-Dashboard
Web-Seite
Entwickler
Bildergalerie
RSS Feed-Liste
Aktivität
Statistiken
Historie
Downloads
Aller Releases-Liste
Statistiken
Quellcode
Quellcode-Repositorys-Liste
Git
hos-v4a
CVS
Repository ansehen
Ticket
Ticket-Liste
Liste der Meilensteine
Typenliste
Komponentenliste
Liste der zuletzt benutzten Tickets/RSS
Neue Ticket abschicken
Dokumente
Kommunikation
Foren
Forum-Liste
Entwickler (761)
Hilfe (688)
Offene Diskussion (342)
Mailinglisten
Alle Mailinglisten
hos-cvs
hos-git
Neuigkeiten
Foren:
Entwickler
(Thread #25090)
Zurück zur Thread-Liste
RSS
HOS-V4 sh2 pacctx.s (2010-01-12 18:48 by
tkohama
#47854)
Ticket erstellen
hos-v4\src\sh\sh2gcc\pacctx.s
ですが
_hospac_ena_int:
mov #0xf0, r1 /* 0x00f0 を反転させて 0xff0f を作成 */
not r1, r1
は符号拡張されて
mov #0xf0,r1 ; 0xfffffff0=>r1
not r1, r1 ; 0x0000000f=>r1
の意味あいになるのでないでしょうか?
mov #0x78,r1
shll r1
not r1,r1
_hospac_dis_int:
stc sr, r0
or #0xf0, r0 /* 全割り込みマスク */
こっちの or は符号拡張ないので、問題なし。
RE: HOS-V4 sh2 pacctx.s (2010-01-12 21:33 by
ryuz
#47858)
Ticket erstellen
Ryuzです。いつもお世話になっております。
バグレポ有難うございます。
命令セット確認いたしましたが、確かに符号拡張が入っており、意図した動作になっておりません。
Mビットが破壊される可能性がありますので、修正したいと思います。
Reply to
#47854
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:11 by
hamayan
#47860)
Ticket erstellen
地味にこんな感じでしょうか。
_hospac_ena_int:
; mov #h'f0, r1 ; 0x00f0 を反転させて 0xff0f を作成
; not r1, r1
mov.l Without_imsk,r1
mov.l @r1,r1
stc sr, r1
and r0, r1 ; 割り込みマスク値以外を取得
mov.l L_imsk, r0
mov.l @r0, r0
or r0, r1 ; 割り込みマスクの値を設定
rts
ldc r1, sr
.ALIGN 4
L_imsk .DATA.L _hospac_sh_imsk ; 割り込みマスク
Without_imsk .DATA.L h'030f ; 割り込みマスク以外のマスク
Reply to
#47858
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:22 by
ryuz
#47865)
Ticket erstellen
Ryuzです。有難うございます。
ほぼ同じ修正を考えていましたが、マスクは h'030f がいいですかね?
手元のマニュアルだと、bit10~31は予約になってますが、後続シリーズで何か使われたりしてますか?(しばらくSH使っていなくて... 汗汗)
予約bitとはいえ、わからないものは基本マスクしておいた方がいいような気も。
あ、でも書き込みは必ず0を書けと注意書きがありますね。 h'030f が
正解かな?。
# 0の読み込みを保証してるので、どちらも同じ動作ではありますが。
hamayanさんのところ、動作確認簡単に出来たりしますでしょうか?
手元でgcc版のコンパイルは通ったのですが、引越しのドサクサでSHの動作確認環境が立ち上がっておらず。まとまった時間が取れるのが週末になってしまいそうです。
P.S.
遅くなりましたが、明けましておめでとうございます。
今年もよろしくお願いいたします。
Reply to
#47860
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:29 by
hamayan
#47867)
Ticket erstellen
_hospac_ena_int:
; mov #h'f0, r1 ; 0x00f0 を反転させて 0xff0f を作成
; not r1, r1
mov.l Without_imsk,r1
stc sr, r1
and r0, r1 ; 割り込みマスク値以外を取得
mov.l L_imsk, r0
mov.l @r0, r0
or r0, r1 ; 割り込みマスクの値を設定
rts
ldc r1, sr
.ALIGN 4
L_imsk .DATA.L _hospac_sh_imsk ; 割り込みマスク
Without_imsk .DATA.L h'030f ; 割り込みマスク以外のマスク
修正しました。
mov.l Without_imsk,r1
の下のレジスタ間接が余計でした。
HEWのシミュレーションでは上記で良さそうです。
逆にgccでの確認ができません。
0x30fにしているのは、一応ステータスレジスタに書き込む時はbit10以上は0にすると言う規則があるみたいなので。かなり微妙ですけれどね。
こちらこそ、今年もよろしくお願いいたします。
Reply to
#47865
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:40 by
ryuz
#47868)
Ticket erstellen
Ryuzです。ボケボケでした。
今押入れあさったら、あっさりインターフェース付録のSH2ボード発見したので、gcc版もhamayanさんに合わせる形でちょっと試してみますね。
Reply to
#47867
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:49 by
ryuz
#47869)
Ticket erstellen
Ryuzです。
よく考えたら、v4のサンプルはインターフェース基板じゃなかったです。orz
すいません、時間が取れ次第動作確認します。
ちなみに手元で行ったgcc版の修正は以下のとおり。
SISCのクセで変なことしちゃってましたが、RISCの場合普通にmov.lが正解ですよね。
_hospac_ena_int:
mov.l without_imask, r1
stc sr, r0
and r1, r0 /* 割り込みマスク値以外を取得 */
mov.l imsk_addr, r1
mov.l @r1, r1
or r1, r0 /* 割り込みマスクの値を設定 */
ldc r0, sr
rts
nop
.align 2
imsk_addr:
.long _hospac_sh_imsk /* 割り込みマスク */
without_imask:
.long 0x030f /* 割り込み以外のマスク */
Reply to
#47868
RE: HOS-V4 sh2 pacctx.s (2010-01-14 23:06 by
tkohama
#47907)
Ticket erstellen
ども、お手数かけました。
実は procにsh7211を移植検討中で、HOSをチラッ見してた訳です。
http://www.nilsenelektronikk.no/neproc.html
Reply to
#47869
RE: HOS-V4 sh2 pacctx.s (2010-01-17 18:31 by
ryuz
#47950)
Ticket erstellen
お世話になります。Ryuzです。
すいません数日体調崩していて。書き込みが遅れました。
本件なのですが、幾つか課題があります。
1) 現状コードでも害は無いはず
(保存不要なbitしか壊していない)
2) 予約ビットをどう扱うかはもう少し議論が必要かも
3) それを踏まえた上でそもそもマスクしない(高速になる)という解もありうる。
4) 別件だが、それよりも現状コードは多重割り込みに問題があったはず。Advance版で対応コードを実験中の状態。反映させるべきか多重割込み禁止で仕様にしてしまうか悩ましいところ。
以上、深く考察できていないのですが、こんなところです。
また復活して時間が取れたら対応します。
取り急ぎ失礼いたします。
Reply to
#47907
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:52 by
hamayan
#47870)
Ticket erstellen
すいません何度も。以下の方が良いかも。
_hospac_ena_int:
mov.w Without_imsk,r1
stc sr, r1
and r0, r1 ; 割り込みマスク値以外を取得
mov.l L_imsk, r0
mov.l @r0, r0
or r0, r1 ; 割り込みマスクの値を設定
rts
ldc r1, sr
Without_imsk .DATA.W h'0303 ; 割り込みマスク以外のマスク
.ALIGN 4
L_imsk .DATA.L _hospac_sh_imsk ; 割り込みマスク
Reply to
#47867
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:15 by
hamayan
#47864)
Ticket erstellen
あれ、なんか違うな。
御免なさい、考え直します。
Reply to
#47854
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:28 by
ryuz
#47866)
Ticket erstellen
Ryuzです。
あ、bitの桁読み間違えてました。
多分同じ勘違いをしている予感。
SRレジスタの非予約bitを0にすると
0x00000303 になるかと。
非予約bitも保存するなら
0xffffff0f かな。
Reply to
#47854