【エンベデッド】組込Lin ..
577:login:Penguin
07/11/09 23:57:10 rbGLP3Vo
>>573
あるピンをhighにしたければ、対応するビットを立ててGPSRに書き込む。
あるピンをlowにしたければ、対応するビットを立ててGPCRに書き込む。
他のピンの状態を気にしなくてもおkということじゃね?
578:573
07/11/10 20:35:59 hlfej/Ux
>>574
アドレスは同じなんですよ。
>>577
実際の動作を見る限りでは、そのような感じです。
何とも気持ちが悪いので質問してみました。返答どうもです。
>>575
>>576
いくら何でもそのレベルの質問はしません。
579:573
07/11/10 20:37:41 hlfej/Ux
>>アドレスは同じなんですよ。
アドレスは違うんですよ、の間違い。
580:login:Penguin
07/11/30 19:09:35 B8uO9vgj
>>573
PXA270は使ったことはないがマニュアルを読んでみた。
GPSR(GPIO Pin-Output Set Register)は読んで字の如くはあるピンをHIGHにするために使用する。
1を書いたビットがHIGHになり、0を書いたビットは現状維持。
また、GPCR(GPIO Pin-Output Clear Register)も使い方は同様。
1を書いたビットがLOWになり、0を書いたビットは現状維持。
GPSR/GPCRレジスタはライトオンリーだから片方だけでは成立しないってこと。
581:573
07/12/05 16:27:38 XLgXGIlc
>>580
神レスサンクス。
582:login:Penguin
07/12/13 06:34:01 xrfAYYwU
STR9-comStickを個人入手したいんだけど出回ってないのかな?
ググってもこのスレくらいしかひっかからないし。
583:login:Penguin
07/12/13 23:52:48 2bQ5KOMZ
>>582
STマイクロから直に買うもんじゃないの?
URLリンク(www.st.com)
&primaryheader=Microcontrollers&secondaryheader=Development%20Tools%20for%20%20Microcontrollers
&subclassheader=Evaluation%20Tools%20for%20Microcontrollers&subclassid=959&rpncode=172091
&producttype=product&open=product&applilevel=
(改行いれたけど本当は一行ね)
でもこれRAMもROMも少なすぎでLinux動かないよね。
584:login:Penguin
08/01/01 21:03:17 CiX80dVk
年末から玄箱使って組込Linuxの勉強はじめようと環境つくってます。
そこでcygwinにgnuwindを追加してpowerpcのクロスコンパイルをやろうと
したけどgnuwindがうまくうごいていないみたい。 orz
やったこと
cygwinをすべてデフォルトでインストール←追加モジュールを選択していない
/optを作ってその下にgnuwindを解凍
/optの下のupwind/binのpathを追加
$ powerpc-eabi-gcc -vでバージョン確認しようとしたけど表示されない。
「ファイルがないよ」とかいわれないからパスはおkだと思ってる。
暗黙の了解があるのかな...
585:login:Penguin
08/01/04 00:59:07 o9gOWR9F
Linux上にクロス環境作った方が簡単でいいんじゃねえですか?
VMwareでも使って。
586:login:Penguin
08/01/04 01:24:30 8X8sTUT+
クロス環境を作るのは本当に苦労するよ
587:login:Penguin
08/01/04 01:37:54 5EbJXDvI
そうか?
gccでやってる分には楽だろ。俺が慣れてるだけなのかも試練が。
588:login:Penguin
08/01/04 01:38:31 cNYvGhIo
駄洒落なのかと思ったんだが・・・
589:login:Penguin
08/01/04 03:30:09 8X8sTUT+
ダジャレのわからんヤツと一緒にいられるか!俺は自分の部屋で寝る!
590:584
08/01/04 10:28:42 TjCgJjEm
冬だけにさぶいダジャレ含めトンクス。w
結局、M$からvirtualPCダウソしてRedHat9インスコ後にgnuwing入れた。
RH9用のgnuwing解凍時にエラーあった(winrar解凍でも)けど
とりあえずバージョン表示されたのでおk。
CQ出版Interface2007/4が当てにならないこともわかた。orz
でいまはgccのコンフィグオプション勉強中。
591:login:Penguin
08/01/05 13:19:33 M50GPuDJ
Windowsで作るのはcygwinにしてもmingwにしても本当に苦労するな>クロス環境
まぁ苦労と言ってもせいぜい一日仕事だが
592:login:Penguin
08/01/05 20:40:07 0qPyVns5
Windowsなら、VMware上でLinux使う方が楽>クロス環境
593:login:Penguin
08/01/05 23:31:34 XQaZbZwE
それはクロスといわない
594:login:Penguin
08/01/05 23:51:22 EsAMvPdt
>>593
VMwareなんだからLinuxもx86かx64
595:login:Penguin
08/01/25 00:09:01 Ywyn1H84
QEMUのSH4のエミュレーションで遊んでみようと
思ったんだけど shix_bios.bin が無いと言われる。
これってどうすればいいんでしょう。何か参考になるページは
ありませんか?
それとも、何か適当な実機を買った方が速度的にも速いでしょうか。
596:login:Penguin
08/01/25 00:50:55 4rHP06wz
値段は知らんけど、実機はドリキャスが一番安いと思う。
LANカードは高いがw
597:login:Penguin
08/01/25 22:23:18 Ywyn1H84
>>596
LANカード1枚で本体が3つくらい買えますね。
さて、QEMUの代わりにScratchbox2を使ってみたのですが、
とりあえず hello world はコンパイル出来たのですが、
sb2 ./a.out
と実行しようとすると、host側のlibc.soを読みに行くみたいで、
target側のを読んでくれません。
なんかこの辺の解説ありませんか?
598:597
08/01/26 00:57:12 gVvCeK9e
sb2動かねー
$ sb2 ./home/a.out
./home/a.out: error while loading shared libraries: libc.so.6: cannot enable executable stack as shared object requires: Invalid argument
SELinuxを切れというアドバイスがあったけど、だめ。
targetのrootfsにあるlibc.so.6が悪いんかなぁ。
599:login:Penguin
08/01/26 03:53:28 /U1csLN2
>>595
ドキュメントに書いてあるべ。
qemu-0.9.1/target-sh4/README.sh4
600:login:Penguin
08/01/26 10:44:38 gVvCeK9e
>>599
ありがとう。読んでたんだけど、リンク先がおフランス語
なのと、組み込み初心者なんでドキュメントの意味するところ
がよくわかんなかった。
bootloader.bin と vmlinux-nand_img_with_OOB-2.6.10-v1.0
をそれぞれ指定のファイルに組み込むって、
単にリネームするだけでよかったのか。
601:login:Penguin
08/01/26 22:23:42 tG+yJYsJ
sh4ならIO-DATAのUSL-5Pが安くていいんジャマイカ?
まだ手に入るジャロ?
602:login:Penguin
08/02/18 22:43:43 I7FVXt0F
USL-5Pでdebian-sarge動いてるけど、正直使い道がない。
かなり小さい事、USB2.0が5本あるなど色々遊べたりはする。
が、NASとして使うのなら玄箱でいい。
SH4はdebian公式からバイナリが落とせないので、
定番のppcやarmな玄箱よりも難易度は高い。
i-o hackの存在や、CFにself開発環境は作れるから、
今のところはあまり困らない。が、あのサイトもそろそろ
消えそうなので、ローカルにapt-lineを作っておいた方がいい。
ユーザー数が少ないからか、SH4の生成バイナリは質が
あまり良くない様で、色々バグを抱えてるような気がする。
603:login:Penguin
08/02/28 12:53:11 80iDMGCt
聞きたい事があります!
今、自分はまったく畑違いの職種の23歳です。
転職考えていて、働きながら通える学校に通おうと思ってるのですが
正直自分でググッた結果、組込リナックス、SE、NE、PG・・・
全て面白そうと思い、選べない状況です
長いスパンで考えた時に収入面、労働時間面で待遇のいい職種はありますか?
もちろん会社によりけり、個人の能力によりけりですが
平均的な事が知りたいので教えてください!
604:login:Penguin
08/02/28 12:59:37 sfXUxgeO
>>603
板違い。
URLリンク(school7.2ch.net)
605:login:Penguin
08/02/28 13:56:09 80iDMGCt
すいません!
ありがとうございます!
606:login:Penguin
08/04/19 20:52:06 glnP0/q9
教えて下さい。
USBおよびCFが使えてLinux-readyなA6サイズ程度以下のワンボードがあれば、
ご紹介ください。
CFでWLAN,USBでD02HWなモバイルルータ狙いですので、
CFはメモリIOだけの結線だと対象外です。
WLAN動作実績があり、5V単独だと吉です。
607:login:Penguin
08/04/19 20:57:11 c9IqDVuR
>>606
こんなの、とか?
URLリンク(www.centurysys.co.jp)
D02HWは動くみたいだけど、WLANはCardbusがないと厳しくないかな?
608:login:Penguin
08/04/19 23:16:44 VfFyGLvN
>>606
CFはなさそうだがWiFiは対応
URLリンク(www.embeddedarm.com)
「準備中です」になっている。
URLリンク(xies.float.co.jp)
609:606
08/04/20 08:11:58 TsnJvirp
返信ありがごうございます。
>>607
CFでWLANと思ってましたが、
PCMCIAでCardBusのWLAN方が良いのですか?
WLANドライバの実態がわかってなかったんで、
小型にしやすいだろうCFを書きました。
さらに言えばminiPCIとかの方が吉だったのかな??
>>608
どんぴしゃです。どちらも同じモノのようですね。
ARM9で2.4.26だし、手を入れられそうな気配。
国内で円で購入できるのも魅力ですね。
でも、WIFI-BOXはアチラでも売ってませんでした。何かあったかな?
610:login:Penguin
08/04/20 08:29:06 Sca1RWs1
>>609
Kernel2.4系ではD02HW(huawei e220)は動かないですよ。
2.6系からoptionドライバをbackportする必要があります。
さらに、モデムを有効にするためにusb-storageに手を入れないといけません。
CFでWLANですが、最近売っている11g対応のものはchipsetがmarvellなので
Linuxでは動作しません(仕様・ドライバ非公開、marvellはクソ)
11bのprism系が必要ですが、入手困難です。
USBのWLAN(ZyDASなど)も使用できますが、APとして使用するとWEPしか
使えないのでおすすめできないです。
611:login:Penguin
08/04/20 10:22:50 TsnJvirp
>>610
あいたたた。2.6系が吉でしたか。というか、それ以外だと困難ですか。
はまる前に指摘いただいて助かります。
612:login:Penguin
08/04/20 10:39:07 c0frTkzz
USBも2.6.10以降とかじゃないと結構とらぶるよ。
613:login:Penguin
08/04/26 07:34:23 rBQZYKvH
誰かxulrunnerをsh4にポートした人はいませんか?
mozilla/xpcom/reflect/xptcall/src/md/unix/
になくてコンパイルが出来ません。
614:login:Penguin
08/05/27 09:00:58 VykLsyr7
USL-5Pをdebian26化して使っています。
カーネルをアップデートしようととりあえず手元にあった2.6.24.3を
クロス(gcc-sh-3.3)でコンパイルして入れてみたのですが起動しません。
defconfig_landiskを使いました。
どなたか、これは動くというバージョンと.configを教えて
いただけませんか。シリアルコンソール化していないので、
何が起こっているかさっぱり....
615:login:Penguin
08/06/05 10:27:01 VxPsxRuG
ここにもいたのね。
まずシリアルつければ?
616:login:Penguin
08/06/05 10:31:27 NpIMDqCZ
ども、すみません。
ハードウェア板に動きましたの報告しました。
スレリンク(hard板:529番)
617:login:Penguin
08/06/18 11:00:04 FGerXNJj
ボードコンピュータに付いてきたカーネルのソースを
見ているんだけど、なんでこんなにあちこちにパッチ
が当たっててupstreamからかけ離れてるの?
ボード初期化の部分は独自でいいとしても、それ以外の
アーキテクチャ固有のドライバまわりとか、汎用のmmやドライバまで。
中には昔のパッチをフォワードポートして upstream で
変更のあったものがrevertされているようなものまで。
当然個々のパッチにドキュメントなんて無いから、
なぜそのような変更が必要なのか全く不明。
組み込み系ってこういうのが普通なんですか?それとも日本だけ特殊?
先細り感をひしひしと感じるのですが。
618:login:Penguin
08/06/18 12:19:08 hXQufezZ
日本に限らんと思うけどねえ。
表に出しにくい事情があるんじゃないかい。
俺は手を入れたらできるだけ上流に投げてるが、
仕事じゃないから出来てることだからなあ。
619:login:Penguin
08/06/18 14:50:27 FGerXNJj
表と言うか、誰でもダウンロードは出来るようには
なっている。ボード持ってないと意味ないけどね。
そのカーネル、ちょっと使うだけでSIGBUSやVM segv.とか吐くし、
何も言わずに固まるってことも。再現性のあるものはテストケース
作って直してってメーカーに言えるけど、そうじゃないから
とりあえず新しいカーネルをと思っても謎パッチだらけで、
ボードの初期化部分だけ移植しても起動すらしない。
本当に特定の環境、用途でしかテストしてないって感じで、
PCユーザからしたらありえない。
まぁメーカからしたら金にならんから仕方ないとは思うけど、
Linux使っててTakeだけというのはどうかと思う。
620:login:Penguin
08/06/18 15:36:08 b44BTw9+
組み込み向けというか、開発者が少ないLinuxカーネルはどこもそんなもんでしょ。
621:login:Penguin
08/06/22 09:04:25 q5aaKaRI
すみません。どうしても調べがつかないので教えて下さい。FONをDD-WRT化しようと色々調べたんですが、細かい説明がみつからず首をひねっています。
一番分からないのが、FLASHとRAMの関係です。
RedBoot> version
とすると、
RAM: 0x80000000-0x81000000, [0x80040290-0x80fe1000] available
FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.
と出ます。
まあ奇異なところはあるけど、概ね
RAM: 0x80000000-0x81000000
で(なんで0x80fffffffでないのか?)、
FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.
とあり、64KBのブロックが128個あるように見える。
っで、
RedBoot> fis list
とやると、
Name FLASH addr Mem addr Length Entry point
(以下略)
が出ます。
ここで疑問なのはFLASH addrとMem addr。
内容物により両方同じ値で0xA8で始まっているものはたぶんFLASH内のデータであろうと推測される。しかし、異っているものがあり、それはFLASH addrは0xA8で始まるFLASH領域、Mem addrは0x8で始まるRAM領域に見えます。
これらはいったい何を表しているのでしょう?
622:login:Penguin
08/06/22 11:04:57 m4CFYIHK
>>621
FLASH addr - FLASHに書いてあるアドレス。
Mem addr - fis loadでアドレス指定しないとそこに読まれる。
fis helpに説明なかったっけ?
623:login:Penguin
08/06/22 19:11:30 q5aaKaRI
>>622
ご回答ありがとうございます。
なんとなく分かりました。
fis helpというのは調べたんですけど分かりませんでした。
代わりにhelp fisというのはあったんですが、
極簡単に
Display contents of FLASH Image System [FIS]
fis list [-c] [-d]
としか出ませんでした。
624:login:Penguin
08/06/23 12:59:00 5Jn7Hh0X
uClinuxのサイトが重くてソースのダウンロードにまで至れないんですけど何か方法ありませんか
625:login:Penguin
08/06/23 13:01:27 6cx8X/B+
>>624
速い回線を買う
626:login:Penguin
08/06/23 23:08:34 8B+4/yXv
>>624
速い回線を寄付する。
どこぞにミラーがあったような気がするが、そこも
そんなに速くなかったような気がする。
sf.jpのは全然更新してねえから古すぎてなあ。
627:624
08/06/24 00:55:57 Gc6g3P3H
タイムアウトばかりだったのがやっと繋がってくれてなんとか落とせました
ありがとうございました
628:login:Penguin
08/06/26 10:16:47 iON5D/Wq
SH archでの質問です。
プログラムをコンパイルすると、アセンブラのオプションに
as -little
と渡っているように見えるのですが、ヘルプをみると
as --little
でなくてはならないように思えるのですが、どうなんでしょう。
一応コンパイルできて動いているみたいなのですが、
-littleだと別の副作用がでて困っているのです。
629:login:Penguin
08/06/26 15:41:37 iON5D/Wq
sh版のasが--little「も」受け付けるようになったのが
2005年の終わり頃だけど、gccはbinutils-2.11.2以降を
要求していて、これが2001年中頃のリリースだから
gccの方を変えるわけにはいかないのか。
630:login:Penguin
08/07/05 01:12:27 ouwQp4GB
まだqemu-sh4まったく動かないのでおじゃる
麻呂はどうすればよいのでおじゃるか?
631:login:Penguin
08/07/10 19:47:51 Gx2wFgQz
接続されている特定のUSBデバイス、あるいは全てのUSBデバイスを
再認識させる方法ってあるでしょうか?
認識したデバイスの順序によって、うまく動かない場合があるので。
認識順序を決められれば多分一番良いのですが。
再認識はWindowsで言うとデバイスマネージャから
デバイスの無効→有効と切り替えるような操作です。
632:login:Penguin
08/07/15 09:50:05 aGrgqLIL
udevとかhotplugに頼らないで、
自分でドライバロードすればいいんじゃない?
633:login:Penguin
08/07/15 23:55:21 KX30zKI5
接続するものがわかってるなら、ソースいじっちゃえば。
libusbである程度できるけど。
634:login:Penguin
08/07/17 23:28:52 7XYJXfvu
shで自力unwindしてーけど
レジスタの意味解らん
オワタ
635:login:Penguin
08/07/20 00:33:35 4yJEnmn0
USL-5PってCF何倍速まで認識しますかね
636:login:Penguin
08/07/20 01:37:45 9Ts8razw
ソフト的な見え方は全部同じなので、コントローラにヘンな癖が
なけりゃ大丈夫でないかと。
637:login:Penguin
08/07/30 01:15:02 guBfzXCP
sh向けのgccとgdbビルドするときに注意するべき
ことってどっかにのってませんかね?
638:login:Penguin
08/07/30 23:06:37 1LL5RXNn
これは?
URLリンク(ymorin.is-a-geek.org)
639:login:Penguin
08/07/30 23:45:13 YYInvdod
>>637
4.1.1は使うな。
640:login:Penguin
08/07/31 00:36:14 FWoObshL
>>638、639
どもです。もう1つ質問してしまいますが
sh4ってIPLにgdbのシンボル入ってないと
gdbって使えないものでしょうか?
641:login:Penguin
08/07/31 02:41:39 em4+rAlj
>>610
uClinuxも2.6系があるらしいですが、
uClinuxでoptionドライバやWLANでAP(インフラストラクチャモード)は動きますか?
642:login:Penguin
08/07/31 08:24:44 9za86z+H
>>640
使い方による。
まあ今はkgdb使えるからipl-gの方でgdbに対応する必要はあまりないと思う。
>>641
今のところuClinuxだからつう理由で動かなかったドライバは見たことない。
それよりもCPUの違いで苦労します。
x86の事しか考えてねえドライバの多いこと…
643:login:Penguin
08/07/31 10:13:55 hbf3MQnx
>>642
ドライバの開発者にボードと開発環境送れば良いんじゃね?
644:login:Penguin
08/08/01 00:04:05 lRhZErSR
sh4カーネルのビルド辺りからユーザ空間作るところまで
自分で全部作る方法どこかに載ってないですかね?
645:login:Penguin
08/08/01 04:12:23 gu1YuAnu
>>643
自分で直した方が早い。
俺も借りてる方なので他の人に送っちゃうと
自分の方が止まっちまうつう事もあるが。
646:login:Penguin
08/08/01 10:00:13 Vn5THG1R
>>645
そういうことを言ってるんじゃないが。まあいいか。
647:login:Penguin
08/08/03 14:21:04 cQ/ip75L
/*
* since we're only adjusting minutes and seconds,
* don't interfere with hour overflow. This avoids
* messing with unknown time zones but requires your
* RTC not to be off by more than 15 minutes
*/
どうればいいんじゃーーー
648:login:Penguin
08/08/04 11:21:23 6zndNqJ3
landiskのconfigで2.6.25.9をnfs-rootで動かしているんだけど、
BUG: scheduling while atomic: sh/11916/0x10000002
というメッセージがよく出るんだけど
これはlinux-shに報告した方がいいのかな。
linux-shってパッチしか流れてなくて、時々流れる
それ以外のメッセージにはちっともレスがつかない
から躊躇するのだけど。
649:login:Penguin
08/08/04 14:21:14 s3cZBMva
その後ろにどばどば出ているダンプ付きで投げれば話くらいは
聞いてもらえると思う。
もっと新しいのを使えと言われるだけかもしれんが。
650:login:Penguin
08/08/04 15:54:08 6zndNqJ3
>>649
もっと新しいの言われても 2.6.25.9->15でarch/shに対する
パッチって出てないし、2.6.26はまだ.1しかでてないから
x86だって使うのには抵抗ありますよ。
確か2.6.26rc5あたりを試したときは、25.9よりもっと
頻繁にエラー出てたと思う。
なんかみんなパッチは書いてるけどロードテストをまともにしてない
という雰囲気を感じる。
651:login:Penguin
08/08/04 22:21:11 t0GxlSUz
今更だけど
2.4.26を手ビルドしたいだれか書籍とか
なんかおせーてsh3か4でやる予定なの
652:login:Penguin
08/08/05 01:22:38 wN4xAmfK
>>650
主要開発者でlandisk使って開発している人はいないと思う。
# こじませんせいは使ってたかなあ。
ので、landisk固有の問題であれば誰も気がついていない
可能性はあります。
つうことで2.6.27-rc1でCONFIG_PREEMPT=yにしたらどうなるよ?
>>650
URLリンク(www.si-linux.co.jp)
あたりに一通り書いてあると思う。
653:login:Penguin
08/08/05 04:36:13 nwX9luFr
SH4 vanilla 2.6.24/2.6.25でカーネルパラメータip=onで起動したとき
IP-Config: Failed to open eth0
とか言われてNICが見えないんだけど何がいけないんですかね?
ルネサスの評価ボードでNICはRTL8139です。
654:login:Penguin
08/08/05 10:49:46 ndc1pKBx
>>652
>つうことで2.6.27-rc1でCONFIG_PREEMPT=yにしたらどうなるよ?
使ってるクロスコンパイラが3.4.6なので
コンパイルすらできませんよ。
URLリンク(lkml.org)
655:login:Penguin
08/08/05 11:49:10 rYf6YNyL
>>651
CPU次第かもだけど、2.6.19以降の方が簡単な可能性も
まっ、余計なお世話だな
656:login:Penguin
08/08/05 12:55:27 ndc1pKBx
すみません。教えてください。
sh4のgcc-4.1.2ネイティブコンパイラで
#include <math.h>
#include <stdio.h>
int main() {
long double a = 0.1L;
long double b = fabsl(a);
printf("%Lg\n", b);
return 0;
}
このコードをgccでコンパイルするとコンパイルできるのですが、
g++でコンパイルすると、
error: 'fabsl' was not declared in this scope
とコンパイルできません。この場合どうするのが正しいのでしょうか?
657:login:Penguin
08/08/05 13:43:03 U2kvFOrk
fabslをthis scopeの場所で定義してやればいい。
abs自体重要な関数でもないし自分で適当に定義して問題ない。
658:login:Penguin
08/08/05 13:48:42 ndc1pKBx
>>657
ありがとう。調べてみるとlong double系の関数は
fabslに限らずダメみたいですね。
さらに、sh4に限らずhppaとかでもlong double系の関数は
c++ではエラーになるみたいで、configureスクリプト内で
long double系の数学関数が存在するかチェックして、
なければdoubleで自分で定義しなおすのが通例のようでした。
659:login:Penguin
08/08/05 18:00:02 ndc1pKBx
すみません。やっぱり疑問です。
なぜgccではよくてg++ではだめなのでしょうか?
fabsl ではありませんが、例えば polw は
$ objdump -T /usr/lib/libm.so |grep powl
0002e8a0 w DF .text 0000006c GLIBC_2.2 cpowl
0002b040 w DF .text 00000274 GLIBC_2.2 powl
$ objdump -T /usr/lib/libstdc++.so.6 |grep powl
000c4e00 g DF .text 00000028 GLIBCXX_3.4 powl
なのに、やはりg++では
error: 'powl' was not declared in this scope
と言われてしまいます。
660:login:Penguin
08/08/05 18:47:43 v1bU+MY+
>>659
うちのシステムでは問題無く見えてるが。
どうでもいいけどfabslはbuilt-in関数ジャマイカ?
661:login:Penguin
08/08/05 18:55:51 ndc1pKBx
>>660
見えてるというのは、例えば
int main() {
long double a = 0.1L, b=0.2L;
long double c = powl(a,b);
printf("%Lg\n", c);
}
こんなコードを g++ a.c でコンパイルできるということでしょうか?
どんな環境でしょうか?こちらは gcc-4.1.2/glibc-2.6と
gcc-4.3.0/glibc-2.8ともsh4ネイティブ環境で、どちらもだめです。
>どうでもいいけどfabslはbuilt-in関数ジャマイカ?
確かにobjdumpしたら展開されてました。
662:login:Penguin
08/08/05 23:46:57 M5dmdWit
するとデフォルトのnamespaceの問題なのかな。
呼び方をpowl()ではなく::powl()にしてみては。
663:login:Penguin
08/08/05 23:54:25 BTkT9hjP
>>662
上のソースでpowlを::powlに、でしょうか?
やったけど変わりません。
すみません、C++よく分からなくて。
664:login:Penguin
08/08/06 02:48:40 ObK2LsR5
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long double a = 0.1L;
long double b = abs(a);
cout << b;
return 0;
}
665:login:Penguin
08/08/06 05:41:13 90ScjHi6
>>664
つまりどういう事?
666:login:Penguin
08/08/06 10:52:09 5rbVEHAI
.hはC言語のヘッダファイルで
C++では.hをつけないんだけどね。
667:login:Penguin
08/08/06 11:20:35 AkO0dpZk
>>666
ここでは、そんなC++の一般知識を確かめているわけではないのだが...
668:login:Penguin
08/08/06 11:32:51 DuvSdRRq
>>662-663の受け答えを見るか切りではそんな一般知識も不足してそうだけどな。
669:login:Penguin
08/08/06 11:39:45 AkO0dpZk
>>688
では>>662はどのようにすればいいの?
670:login:Penguin
08/08/06 11:55:13 DuvSdRRq
>>669
math.hの関数はnamespaceを使ってない。
cmath使うなら::pow()になる。
末尾のlとかはつかん。
671:login:Penguin
08/08/06 12:01:41 AkO0dpZk
>>670
いや、だからC++でpowlを使いたいんだけど、libstdc++には定義があるようだし
どうすればいいのという話です。
libstdc++にあるのは偽者?
672:login:Penguin
08/08/06 12:38:29 MrWK8qGv
gcc の -m* オプションじゃまいか? -mlとか、SH4なら -m4とか。よくシランが。
673:f27e582e9c462b
08/08/06 13:05:51 8eTBydbW
>>1>>>2ch:net>>>2ch.net>>>URLリンク(ip.tosp.co.jp)>
674:f27e582e9c462b
08/08/06 13:06:58 8eTBydbW
>>1>>>2ch:net>>>2ch.net>>>URLリンク(ip.tosp.co.jp)>
675:login:Penguin
08/08/06 14:03:51 mCPIcfm+
>>671
なんで long double が必要なの?
そっちの理由が知りたい
676:login:Penguin
08/08/06 14:41:13 AkO0dpZk
>>675
そこにソースがあってコンパイルしたいから、ではダメですかね。例えば
URLリンク(www.debian.org)
これらの取り組みを否定するものではないでしょ?
677:login:Penguin
08/08/06 14:44:45 AkO0dpZk
あとは、すでに回避方法は >>658 で挙げてあるけど、
なぜ CとC++でコンパイルできたり出来なかったりする
のかという疑問に答えを出したい。
678:login:Penguin
08/08/07 00:23:53 YsvtngAO
>>677
多分前提が違う。
最初思い込みで既存の動いていたコードの話なのかと思ったけど、
>>656は一度でもg++で通ったと言ってるわけではない。
URLリンク(members.aon.at)
4.4.1. New headers replacing C-headers
URLリンク(www.linuxforums.org)
679:login:Penguin
08/08/07 01:06:49 XTerfC5k
gcc-3.4で
arch/sh/kernel/entry.Sをビルドすると
asm違うぞボケと怒られる
/*
* NOTE!! This doesn't have to be exact - we just have
* to make sure we have _enough_ of the "sys_ni_syscall"
* entries. Don't panic if you notice that this hasn't
* been shrunk every time we add a new system call.
*/
.rept NR_syscalls-(.-sys_call_table)/4
.long SYMBOL_NAME(sys_ni_syscall)
ここが違うって怒られるってことは、NR_syscallsが無いと思うけど
これってどうすればいいのですかね
680:login:Penguin
08/08/07 02:12:27 AwAlKngr
>>671
テンプレート
681:login:Penguin
08/08/07 13:57:02 g6GIIrvN
>>678
貼られたリンクが何を言いたいのか分からない。
g++でコンパイルすると-lmが自動的につくと言いたい?
>>680
libstdc++内のがテンプレートだとしても、g++でコンパイルすれば
自動的に-lmが付加されて、libm内のpowlが参照されると思うから
コンパイルできるはずなんですが、何か違いますか。
再度書きますが、sh4で long doubleの数学関数を含むソースが
gccでコンパイルできてg++でコンパイルできない。
i386ではgcc,g++どちらもコンパイルできる。
sh4でlong double系の数学関数が未実装だというのなら、
なぜgccだけコンパイルできるのか。
682:login:Penguin
08/08/07 14:24:49 jPayqA+W
>>681
SH3のgccが手近にあったんで>>656をコピペでビルドしてみた。
拡張子.cpp : g++でもgccでもダメ
拡張子.c : g++はダメだがgccなら通った
gcc バージョン 3.2.1。
ダメの内容は、
test.cpp: function 内の `int main()':
test.cpp:5: `fabsl' undeclared (first use this function)
test.cpp:5: (未宣言変数については、それが関数内で最初に現われた時だけ報告されます。)
関係ないと思うけど、ビッグエンディアン。
で、やはりi386では全部通るね。gcc version 2.96。
683:login:Penguin
08/08/07 14:26:39 g6GIIrvN
>>拡張子.cpp : g++でもgccでもダメ
gccはフロントエンドだから拡張子をみるんでしょ。
cppだからg++を読んでる。
684:login:Penguin
08/08/07 14:32:26 jPayqA+W
要するにCじゃなきゃ通んないってことね?SHではなぜか。
685:login:Penguin
08/08/07 16:19:08 AwAlKngr
なんだ、よく読んだら人の話を聞かない頭でっかちさんかw
>>668, 670 を心して読め。
>>664 はコンパイル通ってるのか?
ひょっとして、同じソースコードが CとC++のコンパイラで
コンパイル出来る事を期待しているのか?
会社のプロジェクトだったら悲惨だな。
まぁ、人並みにがんがれ。w
686:login:Penguin
08/08/07 16:24:20 AwAlKngr
でも >>667 を見ると基礎はありそうな事を書いてはいるね。
こんなのが上司だったら即転職だなw
687:login:Penguin
08/08/07 16:24:52 g6GIIrvN
>>685
>ひょっとして、同じソースコードが CとC++のコンパイラで
>コンパイル出来る事を期待しているのか?
そうだよ。示したテストケースは簡略化したものだけど、
実際にはc++で書かれ<math.h>をincludeしてlong doubleの数学関数
を呼び出しているソースをコンパイルしたいのであって、
cmathを使え、long double は使うなというのはここで問題に
している話題ではない。
688:login:Penguin
08/08/07 16:41:58 g6GIIrvN
ちなみに
#include <cmath>
にしても i386 は powlとかの long double数学関数を呼べるし、
sh4ではコンパイルエラーになる。
なぜか?
689:login:Penguin
08/08/07 16:49:25 jPayqA+W
>>688
cmathの中で結局math.h読んでるからじゃない?
690:login:Penguin
08/08/07 16:50:35 jPayqA+W
あ、いや、忘れてくれ。
691:login:Penguin
08/08/07 16:52:28 KvEAlGj2
そもそも-mは何を指定してるんだ?
692:login:Penguin
08/08/07 16:53:40 g6GIIrvN
>long double は使うなというのはここで問題に
すみません。ここは取り消します。理解できました。
693:login:Penguin
08/08/07 16:54:14 g6GIIrvN
>>691
なにも。
何を指定すれば良いの?
694:login:Penguin
08/08/07 16:56:24 KvEAlGj2
>>693
何もってgccのビルド時に指定してないのか?
コンパイルオプション見ろよ。
695:login:Penguin
08/08/07 16:58:14 WjgH/Ftv
>>693
つ ヒント:32と64
manくらい見てから人に聞こうな
696:login:Penguin
08/08/07 17:03:48 g6GIIrvN
>>695
全然わかりません。SH特有のオプションに-m32とか-m64とかないですが。
>>694
sh4ネイティブ環境でコンパイルしたので、sh4ネイティブ用の
デフォルト値です。
697:login:Penguin
08/08/07 17:06:11 jPayqA+W
SH の-mに-mb -ml -m2,3とか以外の指定ってあったっけ?
698:login:Penguin
08/08/07 17:08:16 3ZyKP7zl
>>697
無いと思う
きっと>>695は勘違いしてるはず
699:login:Penguin
08/08/07 17:10:07 3ZyKP7zl
>>696
オプションはデフォルトではなく、環境にあわせて指定した方が良いですよ
700:login:Penguin
08/08/07 17:11:36 g6GIIrvN
私の無知もあったので問題を再整理します。
C++で<math.h>をincludeしてlong double系の数学関数(たとえばpowl)を
呼び出しているソースがあります。これをi386でコンパイルすると
コンパイルできるのですが、sh4でコンパイルするとコンパイルできません。
回避方法として、powlをdoubleのpowで#defineする方法があります。
解決方法として、<cmath>にしてpowのテンプレートを使う方法があります。
疑問点として、なぜsh4でpowlがc++から呼び出せないのでしょうか。
です。
701:login:Penguin
08/08/07 17:19:20 g6GIIrvN
>>699
例えば
URLリンク(sh-linux.org)
ここのパッケージはspecファイルに何も書いていないので、
デフォルト値が採用されているのですが何かまずいですか?
私の場合トイ用途なので、特定のCPUに追い込んだ設定は必要無いのです。
702:login:Penguin
08/08/07 17:50:49 EN5PuvqY
gnu系の知識はないが、
SH4って安物以外はFPU内蔵で、FPU命令かソフトで実現か選ぶ必要があるとか?
703:login:Penguin
08/08/07 19:22:03 AwAlKngr
math関数は target依存じゃなかったかな?(多分...)
この場合(テンプレート未使用時)、C++ から C関数を使う事になるのか?
とすると extern "C" か...
704:login:Penguin
08/08/07 19:28:55 g6GIIrvN
>>703
後出しと言われるかもしれませんが、extern "C" {} で囲むのは
最初にやってだめでした。
705:login:Penguin
08/08/07 20:02:21 g6GIIrvN
一方sh4のCからのpowlの呼び出しの方も、
warning: incompatible implicit declaration of built-in function ‘powl’
と警告がでます。でもlibmにはpowlの定義があるのでリンクできてしまいます。
確かに、math.h(から読み込まれるbits/mathcalls.h)にはpowlの
定義はありません。
もしかして意図していない関数をリンクしているという事なのでしょうか。
706:login:Penguin
08/08/07 20:12:32 g6GIIrvN
>>705
i386も同様にpowlは見つかりませんね。
build-inといってるからgccの中なのかな。
./gcc/builtins.def
これか。でもtarget依存のようには見えないけど。
707:login:Penguin
08/08/07 22:04:56 AwAlKngr
環境が違うみたいだから、さいなら...
うちは gcc-3.4.5 の x86_64-pc-linux-gnu クロス環境。
glibc-2.3.5。
>>703 でコンパイル & リンク確認。
708:login:Penguin
08/08/07 22:14:35 KvEAlGj2
>>698
>>702も言ってるがm4とm4-nofpuの指定があるとおもったけど、なくなったの?
709:login:Penguin
08/08/07 22:34:16 AwAlKngr
>>708
あるよ。
ほかにも色々。
710:login:Penguin
08/08/07 22:45:20 g6GIIrvN
>>708
あるけど、-m4でしかコンパイルしていない。
cc1plus: error: command line option ‘-m4-nofpu’ is not supported by this configuration
こうなる。
711:login:Penguin
08/08/07 23:37:33 XTerfC5k
--target-help見てないなら無い
それだけだあるのにビルドできんのは
何か不足してるんでしょ
712:login:Penguin
08/08/08 00:57:27 MljPKlSM
RTL8139DってWAL
対応してないですよね?
713:login:Penguin
08/08/08 05:47:12 GQVMFxS/
>>705
その警告が出るということは、見に行くヘッダが間違ってないか?
ホスト環境の方見てるとか。
714:login:Penguin
08/08/08 22:43:11 o2c8kFjg
>>705
その警告の通り、ヘッダには定義がないが、ライブラリ自体には実装しているということです。
C++でもプロトタイプ宣言をすればちゃんとコンパイルが通ります。
i386で正常にコンパイルが通るのは、ちゃんとヘッダ(mathinline.h)に定義があるからです。
このファイルは機種依存のファイルで、glibcのソースでは、sysdeps/(アーキテクチャ)/fpu/bits/以下にあります。
おそらく、このファイルがないアーキテクチャではSHのような症状になるのではないでしょうか。
715:login:Penguin
08/08/09 00:04:29 tDLp/wdz
これって意味ある?
納品物のソースの差分取るとこんなの
満載で250万請求されたw
#ifdef CONFIG_SH_STANDARD_BIOS
-static int strlen(const char *s)
+//static int strlen(const char *s)
+static int tmp_strlen(const char *s)
{
int i = 0;
@@ -145,7 +147,9 @@
void puts(const char *s)
{
- sh_bios_console_write(s, strlen(s));
+// sh_bios_console_write(s, strlen(s));
+ sh_bios_console_write(s, tmp_strlen(s));
}
#else
void puts(const char *s)
716:login:Penguin
08/08/09 00:26:09 IYvljXAp
>>215
作業量で値段はかるのイクナイ!(><)
250万以上の利益を得られる見込みで委託してたのなら、動いた以上は
四の五言わず払ってやれ。もしヘボ作業だとしても、そんなのしか
見つけられない自分を反省して、次からはそこは声かけないようにすればおけ。
それはともかく、そのコードの妥当性は開発規模次第。
かなり大きな開発でなら、試行錯誤する準備の過程で手を付けてはみたが
%
717:login:Penguin
08/08/09 00:27:05 IYvljXAp
最近2ちゃんは記事切れまくるな。
(続き)
それはともかく、そのコードの妥当性は開発規模次第。
かなり大きな開発でなら、試行錯誤する準備の過程で手を付けてはみたが
結局関数名を変えて場所を作っただけに終わったとかよくあること。
自社製品とか、自分が永続的に関わる製品なら隅々まできれいにするけど、
一回きりの外注委託でそこまで気合の入った整理整頓なんか誰もしないよ。
718:login:Penguin
08/08/09 00:34:42 tDLp/wdz
>>716
Bランク75.4万/1人月でこのコードレベルですよ
それになんだか意味のないコード大量につまってるし
金額とこの質だとかなりむかつきませんか?
719:login:Penguin
08/08/09 00:38:10 644OQC1c
やくざな世界だ
720:login:Penguin
08/08/09 01:09:14 q9GjTE39
>>718
問い詰めりゃいいじゃん。
つーか納品時にレビューぐらい普通やらないか?
721:login:Penguin
08/08/09 01:10:49 IYvljXAp
月75万なんて底辺だろ。
中国・インドのクラスに近い。あっちはIT系仕事だと30万とかもあるが、
組み込みでその値段はちょっといかがなものかと。組み込みスレだから
ITじゃなくて組み込み系の仕事だという前提でだけど。
つか、発注内容はなんだったの?
722:login:Penguin
08/08/09 01:15:56 IYvljXAp
>>720
底辺をなめるなっ・・・!
奴らは変数にj1,jj1,jj2,jj3,jj4tmpとか平気で書くんだぞ。
何千行ある関数だってものともしない。計算法違いの指摘で
「例えば4の時は13になる」というとif(n==4)return 13;と
冒頭に書いてOKにする。
更に最悪なのは、指摘しても「?」という顔で全然判ってないこと。
こっちがストレスで先に死ぬわ。
723:login:Penguin
08/08/09 01:50:03 oDTW9Xf8
>>722
割り算やって商と譲与を求める場合は、p, q で無問題
時間に関する変数は t? で ok
任意の個数を表す場合は n? で全然 ok
ループ変数は i? でかまわない
長さを表す場合は l?, s? でいいし
固有の係数を表す場合は k? でok
何か問題があるのか?
724:login:Penguin
08/08/09 02:06:14 7rWDtXOs
fortranかよw
725:login:Penguin
08/08/09 02:10:18 T3JR40W3
>>723
すごいね。
一緒に仕事したくないタイプだなw
絶対に...死んでも...w
726:login:Penguin
08/08/09 08:40:47 e8hz21eJ
スコープによるだろ
727:login:Penguin
08/08/09 09:07:37 oDTW9Xf8
>>725
数値演算やってる関数で長い変数名つけてるの見るとムカつく
長い名前つけるくらいだったらコメントに解いてる数式書いておけ
728:login:Penguin
08/08/09 09:30:10 CoNuCxIk
確かに一緒に仕事したくないってことで
729:login:Penguin
08/08/09 10:23:55 7rWDtXOs
>>727
iCounter++ とかw、あるある。なんで素直に i++と書けんのかと。
730:login:Penguin
08/08/09 10:53:04 /CZ0V8cN
組み込み系のアウトソーシングスレになってきたな。
受け入れ側チームで評価、テストを厳密にしないと
カネだけ取られちゃうだろうね。
731:login:Penguin
08/08/09 11:26:54 IYvljXAp
>>723
書き方が悪かった、すまん。
計算法、といってもそういう数値計算なら俺もそういう数学的記法にするが、
普通のアプリ的な処理方法でそういう記法をしてくるってこと。正直市ねって感じ。
あ、短寿命なループ変数とかに短いのを付けるのはべつにいいよ。
でもそういう変数じゃないのにjj4tmpが冒頭から千行下まで有効とかあるんですよホント。
732:723
08/08/09 16:50:25 oDTW9Xf8
>>731
さすがにそれは、ご愁傷さま、としか言いようがないなw
関数 8000 行 switch 文一発な、悲惨なソースのメンテをしたことがある
さらにまずいのが、VxWorks 使ったまっとうなハードリアルタイムシステム
フラットに展開すりゃ速いってもんじゃねぇでしょwwW
733:login:Penguin
08/08/09 17:22:27 tDLp/wdz
-U__sh3__ -D__SH4__=1
これって何のオプションですか?
うーんなんの効果あるんだろう
734:723
08/08/09 17:32:51 oDTW9Xf8
>>733 そんなもん, コンパイル対象のソース読め
735:login:Penguin
08/08/09 18:14:13 jQO6ZRpp
だんだんスレチな話になってきたが
そろそろIDEでも 変数のスコープを視覚化してくれてもよさげな気がするが
どうだろう
カッコ ( にカーソル合わせると対応する ) が光るように
カーソルが変数にあるときにその変数が生きている領域が
背景ピンクになったりするモードとか
736:login:Penguin
08/08/09 21:17:11 aRNnaBVp
>>735
eclipseはやってくれるでしょ。
737:login:Penguin
08/08/11 07:28:20 FkXYROEy
URLリンク(ms-n.org)
これコンパイルできる方法教えてw
738:login:Penguin
08/08/11 20:45:59 WiCmDl4U
>>714
>C++でもプロトタイプ宣言をすればちゃんとコンパイルが通ります。
通りません。
extern long double powl(long double, long double);
ではだめなのでしょうか?
Cの方は警告がでなくなりますが。
739:login:Penguin
08/08/12 00:51:12 cGgYRhoE
>>738
いい加減 「自分の環境がおかしいのか?」 とか探りを入れ始めろw
具体的にはだな...ぐぐれ!
740:login:Penguin
08/08/12 00:53:46 quAwsbyS
>>739
再現できる環境があります。
URLリンク(sh-linux.org)
ここからたどれるFedora7用のバイナリをインストールしてください。
コンパイルできるという環境の再現手順を教えてください。
741:login:Penguin
08/08/12 01:05:03 fIsUhGXw
>>740
どんだけ上から目線なんだ貴様はよw?
お前消えろなんでもいいから消えろ
そして2度この板くるな
742:login:Penguin
08/08/12 01:10:34 cFnTFx+t
もういい加減「SH4 環境だと g++ でコンパイル通りません」ネタはやめてくれ。
自分で何とかしてください。誰も答えられない(答えたくない)みたいだし。
743:login:Penguin
08/08/12 01:25:50 fIsUhGXw
>>740
今日からお前のsh4環境のみc++利用不可能になったから聞くな
744:login:Penguin
08/08/12 10:18:33 quAwsbyS
まぁ。俺はべつに動かなくても困らないが、
お前らは飯のタネなんじゃないの?
ターゲットごとに我流の開発環境を作って、たまたま
自分のところが動いているという状況が今の
SHの組み込み開発環境だろ。バッドノウハウ入りまくりで
誰も検証してない、できない。
つい2年程前までカーネルすら独自のツリーを維持してて
最近ようやくlinusのツリーに追従できるようになったけど、
その下のGNU ToolsやSDKは囲い込んだ開発者の中でのみ
流通しているパッチやノウハウが幅をきかせている状態。
誰でも検証できる標準開発環境がない。
いずれ、このままではルネサスのSDK以外に選択肢のない世界になるよ。
でぼったくられると。
745:login:Penguin
08/08/12 10:20:31 YIDfUhGW
動かなくても困らないならスレを占拠しないでくれ。
動かないなら動かす方法を見つけて報告してくれ。
746:login:Penguin
08/08/12 10:27:46 ildnFlbr
我流(笑)
747:login:Penguin
08/08/12 10:51:33 cFnTFx+t
>> 744
誰も答えてくれないからって説教ですか。
自分で何とかするか、他所でやってください。
ここに書いても解決しませんよ?
748:login:Penguin
08/08/12 11:13:05 gTn+Nr6V
>>738
extern "C" long double powl(long double, long double);
では?
749:login:Penguin
08/08/12 12:17:33 rE3dKthG
あのー、お取込中失礼しやす。
やじゅうま根性丸出しで
linux-sh-2.4をコンパイルしようとしたら、
しょぱなから、「コラッ sh-linux-gccが無いぞー」って叱られたんですが、
sh-linux-gccかsh4-linux-gcc のsourceどこかにコロガッテないでしょうか?
750:login:Penguin
08/08/12 12:52:18 quAwsbyS
>>748
ありがとうございます。動きました。
次は、これがバグなのか単に未実装なだけなのか。
問題があるとすればgccの問題なのか、glibcの問題かなのですが、
sh4には確かにglibc/sysdeps/i386/fpu/bits/mathinline.h
に相当するものがなく空なのですが、一方i386の方もmathinline.h
には今回話題にしているpowlなど一部のlong double数学関数はありません。
にもかかわらずi386ではエラーや警告が出ずにコンパイル
できますが、sh4ではプロトタイプ宣言しないとエラーや
警告がでます。またsh4でも、powなどdouble系の数学関数では
問題ありません。
これはどう解釈すればよいのか...って興味ないですね。もうやめます。
751:login:Penguin
08/08/12 12:55:05 quAwsbyS
>>749
URLリンク(sh-linux.org)
ここからたどれる
URLリンク(rpm.sh-linux.org)
とかどうですか?
752:login:Penguin
08/08/12 13:16:16 12QIDdDM
>>737
sh-linux-gccがある環境ならmakeできるはずだけど、うちの環境だとentry.Sの
.rept NR_syscalls-(.-sys_call_table)/4
という部分がひっかかってビルドに失敗しますね。
celinux-040503では
.rept NR_syscalls-221
になってるのだけど、そんな感じに修正したら一応ビルドできました。
ちなみに
URLリンク(www.superh-linux.org)
にあるtoolchain_345.tar.bz2を使ってます。
>>749
GCC3.4.5でよければ
URLリンク(www.superh-linux.org)
にSRPMがありますよ。
ところで他の方はSH4でGCC4系のビルドってどうしてるんですか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4537日前に更新/254 KB
担当:undef