質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
アセンブリ言語

アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

Q&A

解決済

1回答

3328閲覧

組み込みマイコンのソースでIARのアセンブラからGNUアセンブラへの移行

minato_hy

総合スコア68

アセンブリ言語

アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

0グッド

0クリップ

投稿2017/02/27 11:52

編集2022/01/12 10:55

###前提・実現したいこと
マイコン用のソースから実行ファイルを生成するツールをIARのEWARMからGNUツールチェーンに移行したいと思っています。
Cソースのコンパイルはなんとか通ったようなので次はアセンブラソース(*.s)の記述をGNUアセンブラ用に書き換えています。

ただ、そこでIAR側のMODULE ?cstartupという文とCSTACKというシンボルの意味が解らず書き換えられません。

MODULEはIARでは「ライブラリモジュールの開始」らしいですが、リファレンス内にも説明がないためライブラリモジュールというのがいまいち理解できていません。そのため、GASでどう置き換えればいいのか調べられていないです。マクロのようなものなのでしょうか?
また?cstartup?は、単なるラベルの一部でいいのでしょうか。IARでは何かを明示するときにラベルに?をつける、などの慣習があるのかと思いましたがリファレンスには見当たらず、これも情報不足です。
CSTACKについては、他のファイルからインポートしている気配がないのですが、IARの予約語かなにかでしょうか? ただ、IAR以外の資料で、リンカのほうで指定しているらしきものもあり、正体が判然としません。

これらの記述の意味や役割、GNUアセンブラにおいて代替となる記述などに心当たりのある方がいらっしゃればご教授いただきたいです。

もしくはIARからGNUツールチェーンへの移行の参考になりそうな情報など、よろしくお願いします。

###補足情報(言語/FW/ツール等のバージョンなど)
GNU ARM Embedded Toolchain in launchpad ver6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2017/02/27 22:27

質問内のキーワードでググると、それなりに情報が出てきますが、これらの情報は役に立たなかったということでしょうか?
minato_hy

2017/02/28 11:24

確かにまったく書き忘れていたので、取り急ぎ追記しました
guest

回答1

0

ベストアンサー

少しググってみただけですが、少しでも参考になれば。
参照したドキュメントなどが質問の環境に該当するかどうかすら不明なので、あまりアテにはなりません。

?cstartup

?が名前の一部かどうかは置いておくとして、cstartupモジュールを読み込んでいるっぽいので、それだけ分かれば十分ではないのでしょうか?(cstartupは名前の通りスタートアップモジュールだと思います)

CSTACK

これはスタック領域の開始(もしくは終端)アドレスだと思うのですが、プロジェクト設定のようなものか、リンカで設定されていないでしょうか?(同様のものにヒープ領域などがあります)

投稿2017/03/02 02:46

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

minato_hy

2017/03/02 11:08

IARのリファレンスにはMODULEは「ライブラリモジュールの開始」とあったので、cstartupモジュールを読み込んでるというよりはcstartupモジュールを宣言している感じがしませんか? で、GNUアセンブラでいうとライブラリモジュールとはなんなのか、どう宣言するのか、というのが解らず……
fuzzball

2017/03/02 11:14 編集

>>cstartupモジュールを宣言している感じがしませんか? あー、そうですね。その下にスタートアップのコードが書かれているんですね? >>ライブラリモジュールとはなんなのか ただのライブラリとかオブジェクトなのでは? スタートアップなら普通はオブジェクト単体だと思いますが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問