Vous n'êtes pas connecté. Ce forum permet seulement les utilisateurs connectés pour poster. Si vous voulez faire un post sur le forum, s'il vous plaît connecter.
Télécharger
Développer
Compte
Télécharger
Développer
Connexion
Mot de passe oublié ?
Créer un compte
Langue
Aide
Langue
Aide
×
Connexion
Nom du compte
Mot de passe
×
Mot de passe oublié ?
Traduction statut du Français
Catégorie :
Logiciel
Peuple
PersonalForge
Magazine
Wiki
Recherche
OSDN
>
Trouver un logiciel
>
System
>
Operating System Kernels
>
Hyper Operating System(ITRON仕様OS)
>
Forums
>
Forum des développeurs
>
HOS-V4 sh2 pacctx.s
Hyper Operating System(ITRON仕様OS)
Fork
Description
Résumé du projet
Dashboard - Développeur
Page Web
Développeurs
Galerie d'images
Liste des flux RSS
Activité
Statistiques
Historique
Téléchargements
List of Releases
Stats
Code Source
Liste des dépôts de code
Git
hos-v4a
CVS
Voir le référentiel
Ticket
Liste des tickets
Liste des Jalons
Liste des types
Liste des composants
Liste des tickets/RSS fréquemment utilisés
Soumettre un nouveau ticket
Documents
Communication
Forums
Liste des forums
Forum des développeurs (758)
Forum d’aide (688)
Discussion-Ouverte (342)
Listes de diffusion
Liste de ML
hos-cvs
hos-git
Nouvelles
Forums:
Forum des développeurs
(Thread #25090)
Retour à la liste de discussion
RSS
HOS-V4 sh2 pacctx.s (2010-01-12 18:48 by
tkohama
#47854)
Création d'un nouveau ticket
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)
Création d'un nouveau ticket
Ryuzです。いつもお世話になっております。
バグレポ有難うございます。
命令セット確認いたしましたが、確かに符号拡張が入っており、意図した動作になっておりません。
Mビットが破壊される可能性がありますので、修正したいと思います。
Répondre à
#47854
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:11 by
hamayan
#47860)
Création d'un nouveau ticket
地味にこんな感じでしょうか。
_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 ; 割り込みマスク以外のマスク
Répondre à
#47858
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:22 by
ryuz
#47865)
Création d'un nouveau ticket
Ryuzです。有難うございます。
ほぼ同じ修正を考えていましたが、マスクは h'030f がいいですかね?
手元のマニュアルだと、bit10~31は予約になってますが、後続シリーズで何か使われたりしてますか?(しばらくSH使っていなくて... 汗汗)
予約bitとはいえ、わからないものは基本マスクしておいた方がいいような気も。
あ、でも書き込みは必ず0を書けと注意書きがありますね。 h'030f が
正解かな?。
# 0の読み込みを保証してるので、どちらも同じ動作ではありますが。
hamayanさんのところ、動作確認簡単に出来たりしますでしょうか?
手元でgcc版のコンパイルは通ったのですが、引越しのドサクサでSHの動作確認環境が立ち上がっておらず。まとまった時間が取れるのが週末になってしまいそうです。
P.S.
遅くなりましたが、明けましておめでとうございます。
今年もよろしくお願いいたします。
Répondre à
#47860
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:29 by
hamayan
#47867)
Création d'un nouveau ticket
_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にすると言う規則があるみたいなので。かなり微妙ですけれどね。
こちらこそ、今年もよろしくお願いいたします。
Répondre à
#47865
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:40 by
ryuz
#47868)
Création d'un nouveau ticket
Ryuzです。ボケボケでした。
今押入れあさったら、あっさりインターフェース付録のSH2ボード発見したので、gcc版もhamayanさんに合わせる形でちょっと試してみますね。
Répondre à
#47867
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:49 by
ryuz
#47869)
Création d'un nouveau ticket
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 /* 割り込み以外のマスク */
Répondre à
#47868
RE: HOS-V4 sh2 pacctx.s (2010-01-14 23:06 by
tkohama
#47907)
Création d'un nouveau ticket
ども、お手数かけました。
実は procにsh7211を移植検討中で、HOSをチラッ見してた訳です。
http://www.nilsenelektronikk.no/neproc.html
Répondre à
#47869
RE: HOS-V4 sh2 pacctx.s (2010-01-17 18:31 by
ryuz
#47950)
Création d'un nouveau ticket
お世話になります。Ryuzです。
すいません数日体調崩していて。書き込みが遅れました。
本件なのですが、幾つか課題があります。
1) 現状コードでも害は無いはず
(保存不要なbitしか壊していない)
2) 予約ビットをどう扱うかはもう少し議論が必要かも
3) それを踏まえた上でそもそもマスクしない(高速になる)という解もありうる。
4) 別件だが、それよりも現状コードは多重割り込みに問題があったはず。Advance版で対応コードを実験中の状態。反映させるべきか多重割込み禁止で仕様にしてしまうか悩ましいところ。
以上、深く考察できていないのですが、こんなところです。
また復活して時間が取れたら対応します。
取り急ぎ失礼いたします。
Répondre à
#47907
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:52 by
hamayan
#47870)
Création d'un nouveau ticket
すいません何度も。以下の方が良いかも。
_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 ; 割り込みマスク
Répondre à
#47867
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:15 by
hamayan
#47864)
Création d'un nouveau ticket
あれ、なんか違うな。
御免なさい、考え直します。
Répondre à
#47854
RE: HOS-V4 sh2 pacctx.s (2010-01-12 22:28 by
ryuz
#47866)
Création d'un nouveau ticket
Ryuzです。
あ、bitの桁読み間違えてました。
多分同じ勘違いをしている予感。
SRレジスタの非予約bitを0にすると
0x00000303 になるかと。
非予約bitも保存するなら
0xffffff0f かな。
Répondre à
#47854