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.
Descargar
Desarrollar
Cuenta
Descargar
Desarrollar
Entrar
Forgot Account/Password
Crear Cuenta
Idioma
Ayuda
Idioma
Ayuda
×
Entrar
Nombre de usuario
Contraseña
×
Forgot Account/Password
Translation Status of Español
Categoría:
Software
Gente
PersonalForge
Magazine
Wiki
Buscar
OSDN
>
Buscar Software
>
System
>
Operating System Kernels
>
Hyper Operating System(ITRON仕様OS)
>
Foros
>
Developers
>
HOS-V4 sh2 pacctx.s
Hyper Operating System(ITRON仕様OS)
Fork
Descripción
Project Summary
Developer Dashboard
Página Web
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
Historial
Descargas
List of Releases
Stats
Código Fuente
Code Repository list
Git
hos-v4a
CVS
Ver Repositorio
Incidencia
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
Communication
Foros
List of Forums
Developers (761)
Ayuda (688)
Open Discussion (342)
Mailing Lists
list of ML
hos-cvs
hos-git
Noticias
Foros:
Developers
(Thread #25090)
Return to Thread list
RSS
HOS-V4 sh2 pacctx.s (2010-01-12 18:48 by
tkohama
#47854)
Crear incidencia
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)
Crear incidencia
Ryuzです。いつもお世話になっております。
バグレポ有難うございます。
命令セット確認いたしましたが、確かに符号拡張が入っており、意図した動作になっておりません。
Mビットが破壊される可能性がありますので、修正したいと思います。
Responder al
#47854
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:11 by
hamayan
#47860)
Crear incidencia
地味にこんな感じでしょうか。
_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 ; 割り込みマスク以外のマスク
Responder al
#47858
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:22 by
ryuz
#47865)
Crear incidencia
Ryuzです。有難うございます。
ほぼ同じ修正を考えていましたが、マスクは h'030f がいいですかね?
手元のマニュアルだと、bit10~31は予約になってますが、後続シリーズで何か使われたりしてますか?(しばらくSH使っていなくて... 汗汗)
予約bitとはいえ、わからないものは基本マスクしておいた方がいいような気も。
あ、でも書き込みは必ず0を書けと注意書きがありますね。 h'030f が
正解かな?。
# 0の読み込みを保証してるので、どちらも同じ動作ではありますが。
hamayanさんのところ、動作確認簡単に出来たりしますでしょうか?
手元でgcc版のコンパイルは通ったのですが、引越しのドサクサでSHの動作確認環境が立ち上がっておらず。まとまった時間が取れるのが週末になってしまいそうです。
P.S.
遅くなりましたが、明けましておめでとうございます。
今年もよろしくお願いいたします。
Responder al
#47860
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:29 by
hamayan
#47867)
Crear incidencia
_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にすると言う規則があるみたいなので。かなり微妙ですけれどね。
こちらこそ、今年もよろしくお願いいたします。
Responder al
#47865
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:40 by
ryuz
#47868)
Crear incidencia
Ryuzです。ボケボケでした。
今押入れあさったら、あっさりインターフェース付録のSH2ボード発見したので、gcc版もhamayanさんに合わせる形でちょっと試してみますね。
Responder al
#47867
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:49 by
ryuz
#47869)
Crear incidencia
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 /* 割り込み以外のマスク */
Responder al
#47868
RE: HOS-V4 sh2 pacctx.s (2010-01-14 23:06 by
tkohama
#47907)
Crear incidencia
ども、お手数かけました。
実は procにsh7211を移植検討中で、HOSをチラッ見してた訳です。
http://www.nilsenelektronikk.no/neproc.html
Responder al
#47869
RE: HOS-V4 sh2 pacctx.s (2010-01-17 18:31 by
ryuz
#47950)
Crear incidencia
お世話になります。Ryuzです。
すいません数日体調崩していて。書き込みが遅れました。
本件なのですが、幾つか課題があります。
1) 現状コードでも害は無いはず
(保存不要なbitしか壊していない)
2) 予約ビットをどう扱うかはもう少し議論が必要かも
3) それを踏まえた上でそもそもマスクしない(高速になる)という解もありうる。
4) 別件だが、それよりも現状コードは多重割り込みに問題があったはず。Advance版で対応コードを実験中の状態。反映させるべきか多重割込み禁止で仕様にしてしまうか悩ましいところ。
以上、深く考察できていないのですが、こんなところです。
また復活して時間が取れたら対応します。
取り急ぎ失礼いたします。
Responder al
#47907
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:52 by
hamayan
#47870)
Crear incidencia
すいません何度も。以下の方が良いかも。
_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 ; 割り込みマスク
Responder al
#47867
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:15 by
hamayan
#47864)
Crear incidencia
あれ、なんか違うな。
御免なさい、考え直します。
Responder al
#47854
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:28 by
ryuz
#47866)
Crear incidencia
Ryuzです。
あ、bitの桁読み間違えてました。
多分同じ勘違いをしている予感。
SRレジスタの非予約bitを0にすると
0x00000303 になるかと。
非予約bitも保存するなら
0xffffff0f かな。
Responder al
#47854