(toppers-users 2469) Re: malloc()の利用方法

倉本 雅史 mkuramoto_1967 @ yahoo.co.jp
2006年 7月 11日 (火) 19:39:31 JST


倉本と申します。

似たような境遇になったことがあるので、便乗します。
私の場合、mallocでなく、printfを使うためでしたが。

--- Takeshi FUTAKUCHI <takeshi.futakuchi @ gmail.com> wrote:

> 高木様、
> 
> >
> 例えば、自作のsbrk関数を作って、それがnewlibのsbrkの代
わりに
> > リンクされるようにすればよいということです。

確かに。
オブジェクトをリンクするようにすればいいんですね。

私の場合は、リンクエラーが怖くて、違うアプローチで解決し
たのですが...

> そんなことが出来るとは知りませんでした。
> リンカスクリプトなど、リンク時にそのような指定をしてや
ればいいんですね。
> 調べてみます。

TOPPERSでは、デフォルトでnewlibを作ってもprintfは動作す
るようになっていますよね。(違いましたっけ?)

ですが、私の場合、OSレスでnewlibを使おうとしていたので期
待した通りになりませんでした。

そんな時、Interfaceのバックナンバー('05.01号)でnewlibの
記事を目にしました。
それによると、newlibをビルドする際、TARGET_CFLAGSに

-DREENTRANT_SYSCALLS_PROVIDED

をセットしなさい、というものでした。

その通りにしてnewlibをビルドし、実行モジュールを作成しよ
うとすると、低レベル関数がリンクエラーとなったので、自分
でそれを書き、最終的にはOSレスでprintfさせることが出来る
ようになりました。

以上