Forums: Forum d’aide (Thread #6967)

H8のHOSのROM化 (2005-02-16 15:15 by beshio #12876)

HOS初心者なのでご教授いただければ助かります。
秋月のH8/3052にHOS上で動作するプログラムを作ろうとしています。
HOSのサンプルをROM化するところはすんなり行き、次に同サンプルを
ルネサスのモニター経由でダウンロードしてRAM上で走らせるのも簡単でした。
3052はシングルチップモードで使っているためRAMは内部RAMが8kB利用
できるだけです。HOS自体をRAMにダウンロードする場合、HOS上の
アプリケーションはメモリー容量の制約からCで30行程度に制限されます。
これでは実用にならないのでHOS自体をすべてFlushに焼きこんで、
HOSの使うメモリーその他のconfigをRAM上のプログラムから指定できるように
HOSの改造を考えています。そうすれば4-5kB程度のプログラムはデバッグ
できるようになります。
そこで教えていただきたいのですが、すでにこのようなrom化を行った例は
あるのでしょうか?なければ自分でしようと思っていますが、先人の業績を
利用できるのであればそれに越したことはありません。

Répondre à 12876×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-02-16 15:39 by hamayan #12877)

H8でHOSを使おうとすると、誰でも考える方法なのだと思います。

ユーザータスクとカーネルを別セクションに別けた場合、参照アドレスの解決をどうするのか?と言う問題が、ユーザータスク側にも、カーネル側にも発生します。
例えばユーザータスクを修正した場合、アドレスが変化して、カーネル側から参照できなくなる可能性が出てきます。
なんか上手い方法無いですかね?。


ところでRAMデバックを行う目的が、ROMへの書き込み時間の節約なら、ROMへ転送と、RAMへ転送する時間はそれ程変らないと言うか、なんか私のところではROMに転送した方が早かったりします。何故でしょう?。
Répondre à #12876

Répondre à 12877×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-02-16 20:32 by m-arai #12884)

まずbeshioさんへのお答え。私は知りません。
hamayanさんがご存知ないということはB-)、かなりの
確度でそういう公表された事例は無いということに
なると思います。

30行というのはちょっと?だったり、実用とは
如何なる範囲なのか興味があるところですが、
それはさて置き、確かにオンチップRAMだけで
デバグや実行をしたいという要望は皆さんが
抱えているものでしょうね。


アプリケーションからカーネル部の参照は、事前に
生成されている筈のカーネルのアロケーション情報から
簡単に解決できますね。
hamayanさんもprintfのROM化等で手法を紹介されていたと
記憶しています。

で、逆のカーネルが参照するアプリケーション依存部分の
参照ですが、これは即ちkernel_cfg.cに生成される
mknl_*とkernel_*をいかに解決するかということだと
思います。

beshioさんはRAM上のプログラムから指定する方法を
お考えとのことですが、私なら…

ぱっと思いつくのは、固定RAMアドレスに
コンフィグレーション情報を保存する領域を定義して
おき、それを使ってカーネルのアロケーションを行う
方法です。

/* これをRAMの先頭/末尾に置く */
VP *mknl_idl_stkblk
const VP mknl_idl_stk;
const SIZE mknl_idl_stksz;
T_MKNL_QUE *mknl_rdq_tbl;
const INT mknl_rdq_cnt;
const UW kernel_tic_deno;
const UW kernel_tic_div;
const UW kernel_tic_mod;
const T_KERNEL_TCB_ROM *kernel_tcb_rom;
T_KERNEL_TCB_RAM *kernel_tcb_ram;
T_KERNEL_TCB_RAM **kernel_tcb_ram_tbl;


のような感じでしょうか。そしてこの領域に
アプリケーションのコンフィグレーション情報が
乗るようにします。プログラムの実行ではなく、
RAMへのロードの段階でコンフィグレーション情報が
設定されることになります。

カーネルとコンフィグレータ両方にチョコチョコ手を
入れなければならないかもしれませんが、特に困難は
ないでしょう。欠点は、ベタベタ開発環境依存な
所ですかね。リンカが関わってくるので仕方ないですが。
Répondre à #12877

Répondre à 12884×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-02-20 04:30 by beshio #12942)

H8 ROM化作業を行っていて少し気付いたことがあるのでご教授ください。
HOSのコンフィギュレーションでHOS_MAX_ISRIDを設定するとkernel_cfg.cの
コンパイルでエラーが起きます。具体的には、kernel_isrcb_tbl[]は
kernel_cfg.cでは実体として宣言されますが、knl_inh.hではポインタとして
定義されているのが原因のようです。

c : T_KERNEL_ISRCB kernel_isrcb_tbl[12]; /* ISR control block table */

h : extern T_KERNEL_ISRCB* kernel_isrcb_tbl[]; /* 割り込みサービスルーチンコントロールブロックテーブル */

詳細を理解しているわけではないのですが、exe_int.cを見る限りでは実体を宣言するのが
正しいように思われます。
ソースは下記URLのtarballからダウンロードしました。

http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/hos/hos/hos-v4/

既出でしたら申し訳ありません。
Répondre à #12884

Répondre à 12942×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-02-23 14:19 by hamayan #12995)

ふと思ったのですが、ROMとRAM間のアドレス参照だけの問題に留まらず、RAM上で実行するタスクのロードと、実行開始と言う問題も残っていますよね。

そこで、ROMの中にタスクを一本走らせて置いて、それで通信させてRAM上にロードし、cre_tskで登録させれば、追加タスクが参照するサービスコールのアドレス解決だけの問題になるような気がしてきました。

ITRONにもダイナミックローディングが検討されていたと思いますが、あれは参考になるのかな?。
Répondre à #12877

Répondre à 12995×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-02-27 21:17 by m-arai #13022)

> RAM上で実行するタスクのロードと、実行開始と言う問題も残っていますよね。

デバッグモニタからのロードを想定していましたが、
単にロードするだけなら簡易なローダを載せても
良いでしょうね。

DIP SWでモードを設定して、ロードモードなら
シリアルからMOTを読んでSRAMに書き込み、
実行モードなら特定のアドレスにジャンプする
程度のもので十分でしょう。
Répondre à #12995

Répondre à 13022×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-02-16 21:31 by beshio #12885)

皆さんご教授ありがとうございます。
ARAIさんの情報は大変参考になります。ご指摘の通り、kernelのアドレスは
nm -sとかを用いてダミーのシンボルテーブルを作成し、これとlib(全obj)を
リンクしたマップファイルからアドレス情報を拾い上げて対処(link scriprで定義する)
しようとしています。
HOSのソースを眺めたところT_KERNEL_TCB_RAMなどはkernel_cfgで静的に定義されている
ようでしたので、これらを使ってない割り込みベクターを経由してkernelに通知しようと
思っていたのですが、そもそも初心ですのでそのような実装でうまくいくのか
わからずお伺いをしました。
今のところコンフィグレータには手をいれず、kernel_cfgから別のCソースを作成して
対処しようとしています。
最後にもう一つ教えていただきたいのですがHOS H8の環境で割り込みコードの実行時定義
はできないと解釈しておりますが正しいでしょうか?cre_isr/def_inhのいずれも
ライブラリには見つかりませんでした。
Répondre à #12876

Répondre à 12885×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-02-16 21:52 by m-arai #12889)

ITRON的ではありませんが、現状でも手はありそうです。

kernel_cfg.cをご覧になればお分かりかと
思いますが、CPUをロックして
kernel_intcb_tbl[X].exinf;
kernel_intcb_tbl[X].isr;
を適当に弄れば可能かと。

Xは割込み番号と一致しない場合があること、
HOS_MIN_INTNO、HOS_MAX_INTNOを適切に設定し、
書換えようとするkernel_intcb_tbl[X]が正しく
kernel_cfg.c内で確保されていなければならない
ことに注意が必要ですが。

やってみたことはありませんが多分...
Répondre à #12885

Répondre à 12889×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化その他 (2005-02-20 04:31 by beshio #12943)

H8 ROM化作業を行っていて少し気付いたことがあるのでご教授ください。
HOSのコンフィギュレーションでHOS_MAX_ISRIDを設定するとkernel_cfg.cの
コンパイルでエラーが起きます。具体的には、kernel_isrcb_tbl[]は
kernel_cfg.cでは実体として宣言されますが、knl_inh.hではポインタとして
定義されているのが原因のようです。

c : T_KERNEL_ISRCB kernel_isrcb_tbl[12]; /* ISR control block table */

h : extern T_KERNEL_ISRCB* kernel_isrcb_tbl[]; /* 割り込みサービスルーチンコントロールブロックテーブル */

詳細を理解しているわけではないのですが、exe_int.cを見る限りでは実体を宣言するのが
正しいように思われます。
ソースは下記URLのtarballからダウンロードしました。

http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/hos/hos/hos-v4/

既出でしたら申し訳ありません。
Répondre à #12876

Répondre à 12943×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化その他 (2005-02-20 08:06 by m-arai #12945)

おや、こんな基本的な問題が今まで何故?と思ったら、
*isr*は基本的に使われていないもののようです。
(実際に割込み関係で使われているのは*int*のみ)

hos4cfg作成の際、テンプレートになったattxxx.cpp
やknl_xxx.hから一括変換したりした作業の名残ですかね。

不要な痕跡だったら削除しておかねばなりません。
Répondre à #12943

Répondre à 12945×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化-ほぼ完了 (2005-02-26 23:46 by beshio #13018)

ROM化がほぼ完了しました。「ほぼ」と言うのは未だ全ての処理を確認していないからです。
ROM上にはHOSカーネルとlibgccを全て焼きこみました。またルネサスのモニタを焼きこみ
デバッグするプログラムはモニタでダウンロードしてから実行するようにしました。
この環境でHOSのsampleをダウンロードして実行できることを確認しました。

ROM化(というかカーネルRAMの確保など)の基本的な方法はm-araiさんからご教授
いただいた方法を採りました。ただしTCB_RAMなどconfigで大きさの変わるデータは
RAMの先頭/末尾に置いて後から被せるのではなく、それらのポインターを
ROMプログラムに渡してその中で設定するようにしました。

HOSソースはROM化が大変しやすく出来ていて、実際に手を入れる必要があるのは
ヘッダーファイルだけでした。

configuratorの中身を学習して手を入れるのは私には難儀でしたので、kernel_cfg.cから
ROMカーネル対応のkernel_cfg_rom.cを作成するためのプログラムを起こして対応しました。

皆さん色々とご教授感謝いたします。
Répondre à #12876

Répondre à 13018×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化-ほぼ完了 (2005-02-27 21:17 by m-arai #13023)

おめでとうございます。

>ただしTCB_RAMなどconfigで大きさの変わるデータは
>RAMの先頭/末尾に置いて後から被せるのではなく、
>それらのポインターをROMプログラムに渡して
>その中で設定するようにしました。
ああ、言葉が足りなかったでしょうか。
コンフィグレーション依存でサイズが変わるものは、
勿論そのポインタを特定領域に確保するのです。
その点で、少々カーネルやコンフィグレータに手を
入れなければならないかもしれないということでした。

せっかくの未踏成果なので、よろしければどこかに
公開していただければと思います。
#何ら強制の意はありません。

適当な所がなければ、閑古鳥の鳴いている;-)
HOS Wikiもあったりしますのでご利用ください。
Répondre à #13018

Répondre à 13023×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化-ほぼ完了 (2005-02-28 02:03 by beshio #13024)

tar.gzのソースパッケージを作成したのでが、
どこに置いたらいいのかよく分かりません。HOS Wikiも何処だかよく分かりません。
まことにお手数で恐縮ですが具体的なURLをお教え願えませんでしょうか
Répondre à #13023

Répondre à 13024×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化-ほぼ完了 (2005-02-28 07:20 by m-arai #13025)

HOS Wikiは http://hos.sourceforge.jp/ にあります。

「ノート」の投稿フォームから「追加」してみて
下さい。フォームで入力した基本的な項目を載せた
ページが作成されます。このページを編集して
より詳細な情報を書き加えたり、公開するファイルを
添付すれば一丁上がりです。

PukiWikiの文法やプラグインの使い方については、
ヘルプから読めます。
あまり良く分からなくても、誰でも何度でも
容易に修正が行えますので、気軽に始めてみて
ください。
PukiWikiについては、 http://pukiwiki.org/
本家です。

ご利用の際には「hos.sourceforge.jpについて」を
まず読んでくださいね。
Répondre à #13024

Répondre à 13025×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化-ほぼ完了 (2005-02-28 13:19 by beshio #13026)

ノートにアップロードしました。
内容をリビューしていただいた方がいらっしゃいましたら、ご意見、間違いの指摘などをお聞かせください。
Répondre à #13025

Répondre à 13026×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-06-20 12:32 by Anonyme #14815)

Miwと申します。
私も秋月の3052Fを使っておりまして、モニタをつかってHOSのプログラムを動かしてみたいとおもってます。
さて、Beshio様のソースパッケージを読ませていただきたいのですが、HOS Wikiの方には無い様です。
もう、公開は終了されたのでしょうか?
Répondre à #12876

Répondre à 14815×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-06-20 20:42 by m-arai #14825)

ノート/4 をご覧ください。
http://hos.sourceforge.jp/index?%A5%CE%A1%BC%A5%C8%2F4
Répondre à #14815

Répondre à 14825×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-06-20 22:38 by Anonyme #14830)

Miwです。
ああ、下のほうに#attachでuploadされてたのですね。
見えてませんでした。
どうもありがとうございました。
Répondre à #14825

Répondre à 14830×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-06-20 23:10 by m-arai #14831)

元のメッセージを読み返してみると、

>モニタをつかってHOSのプログラムを動かしてみたい
>とおもってます

とのことですが、単にルネサスのモニタからHOSの
プログラムを動かすだけなら、モニタの設定に合わせて
リンカスクリプトを書くだけで済む話です。

beshioさんの試みは、カーネル(ライブラリ)をROM上に
置くというところに肝がある、ちょっと「技」が入って
いるものなので、特にメモリ的な制約があるとか、
ROM化それ自体を目的としているとかいった事情が
無いのでしたら、まずはシンプルにやってみることを
お薦めします。
Répondre à #14830

Répondre à 14831×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-06-22 18:38 by Anonyme #14869)

Miwです。

>特にメモリ的な制約があるとか、
>ROM化それ自体を目的としているとかいった事情が
>無いのでしたら、まずはシンプルにやってみることを
>お薦めします。

なるほど、やってみます。

今日はモニタにprintfやsprintfをつけていろいろ試していたのですが、正常にうごきませんでした。
で、hamayanさんのmotをつかってもダメだったのですが、
結局フラッシュメモリの書き換えができなくなったのが原因のようでした。
Répondre à #14831

Répondre à 14869×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-07-29 16:22 by Anonyme #15575)

Miwです、お世話になります。
ここのところ、モニタ回りをいろいろといじっていて、やっとbeshioさんのROM化を試してみました。

うちは、hamayanさんのHOS本のページで紹介されている新井さんの”素のWindows上で動くGCCクロスコンパイラ”でやってます。
その結果、
1.モニタのチューン、HEW4を使ってOK
2.HOSのロム化、memsetがリンクされずエラーが出たのでMakefileにlibcのリンクオプションを追加。OK
3.モニタとHOSの合体mot、OK。動作確認大丈夫っぽい。
というとこまでいきました。
最後の段階で、Cygwinをいれてやってみたのですが、
残念ながら、HOSのアプリの製作のところでとまってます。
もうちょっと頑張ってみます。

一方、Aki-H8/3069F用に、増設RAMに入れるようにSCIやITU関連をいじってみたのですが、
こちらはうまくいきました。
Répondre à #14869

Répondre à 15575×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-07-30 07:23 by hamayan #15581)

どうもです。
色々試されているようで、楽しそうな事になっていますね。

Cygwinで上手く行かないのは何故かなあ。
ちょっとした問題だと思うんだけれど。
Répondre à #15575

Répondre à 15581×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-07-30 18:15 by Anonyme #15589)

こんにちは。

gcc自体、そんなに詳しくないのですが、
gccのバージョンが違うとか、微妙にパスがとおってないとか、そんなところでしょうか?
makefileをよんで勉強しますね。

今日はそのつもりで出勤したのですが、実験装置(RCヘリ)の修理でもうこんな時間・・・。

ぼちぼちやってみます。
Répondre à #15581

Répondre à 15589×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-08-20 13:11 by Anonyme #15891)

Miwです、お世話になります。

beshioさんのサンプルを試しているのですが、
最後のsample.motをつくるところで躓いています。

makeでsample.coffをつくるところがありますが、そこで

vector.o(.vectors+0x4):fake: undefined reference to `hos_vector001'

sample.o(.text+0x36):sample.c: undefined reference to `sta_hos'

sample.o(.text+0x76):sample.c: undefined reference to `__udivsi3'

kernel_cfg_rom.o(.text+0xc):kernel_cfg_rom.c: undefined reference to `romcrt0'

ostimer.o(.text+0x2e):ostimer.c: undefined reference to `isig_tim'

といったHOSやgccの関数・演算子の呼び出し?に関するエラーがでています。
試しに-lgccを加えると、gcc関連のエラーは消えました。
でも、rom化した関数を呼び出すのにライブラリをリンクするのは違うようなきがします。

makeファイルでつくられるスクリプトh83052rom.xの問題かなとおもい、
最後の行でinclude命令で付け加えられるhosrommap.xの中身を直接書き込んでもみたのですが、
変化ありませんでした。

パラメータがうまくldに渡せていないのでしょうか?

アドバイスをお願いします。
Répondre à #15589

Répondre à 15891×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-08-22 00:35 by Anonyme #15916)

Miwです。手元にH8がないのでまだ試してはいないのですが、一応sample.motはできました。

対処法ですが、
1.mkromのなかにできたhosrom.mapから、hosの関数アドレスを#defineで定義するヘッダーファイルhosrom.hを作る。
2.MakefileにLIBS = -lgccを追加する
3.MakefileのOBJSからVector.oを削除
4.sample.c、ostimer.c、kernel_cfg_rom.cにhosrom.hをインクルード
を行った後makeしたら、一応sample.motができました。

エラーが出ていたときのsample.mapをみたところ、hos_vectorの値がのっていたので、ためしにvector.oをはずしたところ、リンクできたようです。
動作はあす試してみます。

Répondre à #15891

Répondre à 15916×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-08-22 11:03 by Anonyme #15934)

Miwです。

Vector.oをはずしたら、当然割り込みベクタの設定ができないですね。

Vector.oをいれたときのmapファイルをみると、キチンとvectorや関数のアドレスは設定できてるようです。
でも、undefinedのエラーがでると。

どうなっているんだろう?
Répondre à #15916

Répondre à 15934×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-08-22 11:27 by hamayan #15935)

vector.sの中で_hos_vector001を参照しているけれど、それをリンカーで解決できないからエラーですよね。

vector.sの中でラベルを参照せず、即値を書いてしまえば、、、またm-araiさんに怒られそう。

でも、一回作ればそれ以降は使いまわしができるはず。
Répondre à #15934

Répondre à 15935×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-08-22 14:08 by Anonyme #15939)

Miwです。

hamayanさん:

結局Vector.sの中ではアドレス値を記述しました。
で、hosの関数に関してはモニタにくっつけたprintfの呼び出し方法と同じく#defineをつかったヘッダーを用意しました。
あと、libgcc.aの関数については、-lgccでリンクしちゃおうということで。
これでサンプルが動きました。ありがとうございます。

でも、なんでリンカでエラーがででるんでしょうね?

自分の作業をまとめてみてから、
自分のプログラムを試してみます。
Répondre à #15935

Répondre à 15939×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-08-23 00:22 by m-arai #15957)

環境依存の問題の可能性があります。

hosrom/mkrom/hosrommap.xが、

_apploadaddr = 0x000fe0e4;
romcrt0 = 0x00008000;


となっているようなら、全ての行頭に'_'を加えてみて
下さい。即ち、

__apploadaddr = 0x000fe0e4;
_romcrt0 = 0x00008000;


となるように。

現在、かなり弱体化していますのでここまで。
Répondre à #15939

Répondre à 15957×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion

RE: H8のHOSのROM化 (2005-08-23 15:47 by Anonyme #15979)

m-arai様:

Miwです。
さっそくやってみたところ、無事makeは出来るようになりました。ありがとうございました。

が、sampleを実行すると暴走します。

一つ目のパターンは、HOSの表示のあとに0000が表示されてで停止します。

二つ目のパターンは、HOSの表示と0000の表示が繰り返されます。
どうも、割り込み関係がおかしいようです。

hamayanさんに教えてもらった方法では、HOS本のtutorial10と同様のものが動作いたしました。

とりあえずリンクが出来るようになりましたので、ぼちぼちと調べていきます。

ありがとうございました。
Répondre à #15957

Répondre à 15979×

You can not use Wiki syntax
Vous n'êtes pas connecté. Pour distinguer vos messages en provenance du reste, vous devez choisir un surnom. (L'unicité du surnom est pas réservé. Il est possible que quelqu'un d'autre pourrait utiliser exactement le même surnom. Si vous voulez l'assurance de votre identité, nous vous recommandons de vous connecter avant de poster.) Connexion