【Renesas】ルネサス 78K R8C RL78 RX SH V850 5
1 :
774ワット発電中さん :
2012/07/24(火) 14:54:59.40 ID:UlcDnyMe
-−- _. ' ´ ` 、 / / \ / // ` ー- . //ィ' ./ __ _,./ | | ,ィ' / / ´, ' ^ ′ ,| | '´ l′ _/ .__/ / 7ト/. . / . ィ'/ 「'7女ァr / / !'| lヽ | //,r1' ,.イ ム. / / / ぇ、リ | | . ´ l.{ |/ | [_/ // ' ヾ:、 | | ヽ| | ' ん /| / | | | | ヽ、/,r´|/ ,ハ | | |\ ´’ / , , ' l/ 人生いろいろ、マイコンいろいろだよ | | | j` ー--‐ャ ´ / |/ '. ハ. |/ / / , < ! ⊂,. ̄`ヽ∨ ∨ | ̄`/ / , /,r⌒.ー、 / ゙l V' | / //'´ i´ `ヾ }',. , / | ヽl. / /' ! )
スレ建立乙です
今まで20MHzのR8Cで処理していたプログラムを32MHzのRL78に移植すれば パフォーマンス的にはほぼ同等以上で処理できるのでしょうか? それともRXにしないと十分な性能ではないのでしょうか? すごく大雑把でいいので教えてください。
RX-78って何? マイコン?
前スレのRL78純正コンパイラの最適化だけど、 インライン関数が使えないのはどうなの? マクロは型がアレになるので嫌
>>4 参考になるか微妙だが、CoreMarkのスコアだと
RL78/G14が、0.67CoreMark/MHzで
R8Cと同コアのM16Cが、0.47CoreMark/MHz
>>6 #pragma inlineまともに使えないんですね!
知らなかった。
これは普通にびっくり。
11 :
774ワット発電中さん :2012/07/26(木) 01:13:42.45 ID:qZtx3z9B
「がじぇっとるねさす」って、なんでweb上でコンパイルさせるんだろう。 別に、大したコード書いてるわけじゃないが、 あんまり気持ちの良いモノでもない。
mbedの真似じゃね?
IPネタの収集と用途アンケート代わりだろう
16 :
774ワット発電中さん :2012/07/27(金) 21:12:07.54 ID:d5UWTPHE
RL78/G14の講座聞きに行ったが、バッテリ駆動には結構使えそう。 あとデバイスファイルが自動的にセクション作ってくれたり(もちろん手動設定も可)、 SFRがピン数に合わせた割り振りしてくれるので 比較的シンプルにC言語に専念できるのがいい。 (商用電源がつながっていて(あるいは短時間のバッテリ駆動で)、高速度やサイズを大きく、 4バイト、8バイト変数を多用するならRXの方がいいけど)
がじぇるね GR-SAKURA、登録してWebコンパイラ使うのに 何でこんなに個人情報欲しがるんだ?やな感じ。
いたずら対策でしょ。 でも漏洩される危険性があるからイヤなのは同感だな。
輸出管理だろ。 テポドン引き上げたらマイコン出てきて家宅捜索食らったらしいぞ。
在日がたくさんいるんだから、その方法で輸出管理出来るわけねえだろw
クラウド開発環境 なぜか、gcc 面白い
二番煎じじゃダメなんですかっ! あれ、もしかしてビリから一番?
24 :
774ワット発電中さん :2012/07/31(火) 16:35:48.52 ID:u+niyU1v
目玉商品で釣って、別の商品で儲けるという戦術は 商売の基本だわな。
>>22 もうちょっとサービスして欲しいところだな
RXで、本当にARMよりバイナリサイズが小さくなるのか試したいんだよね。
gccじゃCPUの実力判るほど最適化されない事多すぎだしw まして新アーキテクチャのCPUなんて…
archによって、最適化って左右されるし 速度優先なら、サイズが肥大化する可能性も gccで最適化無しは汗読める人にひと蹴りされるかも 昔はサイズが小さいと早くなることが多かったけど 今や、ROMサイズはそれなりの富豪プログラムが出来る時代 最適化するとハマるから、最適化禁止の縛り入れるところもあるらしいからね
>>29 べつにクズでもいいけどw
「クラウド開発環境をもうちょっと実力の出る環境にして欲しいよね。」
という話題に、
方向違いなこと言ってるおまえモナーwww
>>30 >「クラウド開発環境をもうちょっと実力の出る環境にして欲しいよね。」
>という話題に、
↓がそういう話題か?
「もうちょっとサービスして欲しいところだな
RXで、本当にARMよりバイナリサイズが小さくなるのか試したいんだよね。」
すまん、おまえに関わったオレがバカだった。
>>32 他人に聞かれてんだから答えろよ。
「もうちょっとサービスして欲しいところだな
RXで、本当にARMよりバイナリサイズが小さくなるのか試したいんだよね。」
ってのが
「クラウド開発環境をもうちょっと実力の出る環境にして欲しいよね。」
という話題か?
入門レベルの環境に あーだ、こーだ いってもね 上のレベルのクラウド的な開発環境はもっと自動化されてるよ 未熟な人はハマりながら覚えていってるみたいだよ
いやー、入門用だから子供だましの環境でいいとは思えないんだが。 逆にレスポンスが悪化しない程度に、最高の環境を試せた方がいいんじゃないかなあ? まあ確かに、「まず慣れろ」ではあるねw
37 :
774ワット発電中さん :2012/08/02(木) 00:54:10.77 ID:iEn4OSbk
慣れた頃にルネサス、お父さんのヨ・カ・ン。
38 :
774ワット発電中さん :2012/08/02(木) 01:04:37.98 ID:iEn4OSbk
ビジネス+板のスレにこんなカキコの転載が... 4 自分:名無しさん[] 投稿日:2012/06/03(日) 20:50:52.34 ID:wmp33orD0 日本で11月4日、借金苦のNECが、 認知症のルネサスを殺害して無理心中を図ったとみられる事件の初公判が5日に行われた。 事件内容は認知症のルネサスの支援で借金苦に陥り、相談の上で殺害したというもの。 NECはルネサスを殺害した後、自分も自殺を図ったが発見され一命を取り留めたとの事。 NECはエルピーダと3企業で連盟を結んだが、2月にエルピーダが死亡。 その頃から、ルネサスに認知症の症状が出始め、NECは支援を検討。 ルネサスは2012年4月ごろから昼夜が逆転。徘徊で日立、三菱に保護されるなど症状が進行した。 NECはリストラをして支援を行おうとしたが自身の赤字が軽減せず、6月に支援切れ。 追加出資や融資は、会社設立時の経緯を理由に認められなかった。 支援と両立する施策は見つからず、12月に資金がショート。 三菱の支援も限度額に達し、運転資金が足りず、 2012年12月31日に心中を決意した。 「最後のルネサス孝行に」 NECはこの日、車椅子のルネサスを連れて川崎市内を観光し、1月1日早朝、 武蔵小杉の遊歩道で「もう生きられへん。此処で終わりやで。」などと言うと、 ルネサスは「そうか、あかんか。NEC、一緒やで」と答えた。 NECが「すまんな」と謝ると、ルネサスは「こっちに来い」と呼び、 NECがルネサスの額にくっつけると、 ルネサスは「わしは元NECエレや。わしがやったる」と言った。 この言葉を聞いて、NECは殺害を決意。ルネサスの首を絞めて殺し、 自分もロケットビルで宇宙に飛び出し自殺を図った。 冒頭陳述の間、NECは背筋を伸ばして上を向いていた。肩を震わせ、 眼鏡を外して右腕で涙をぬぐう場面もあった。 裁判では三菱の山西社長がNECが献身的なグループ再編の末に 事業失敗等を経て追い詰められていく過程を供述。 殺害時の2社のやりとりや、 「ルネサスの命を奪ったが、もう一度 半導体立国日本に」という供述も紹介。 目を赤くした日立の中西社長が言葉を詰まらせ、 三菱の山西社長も涙をこらえるようにまばたきするなど、法廷は静まり返った。
泣いた
40 :
774ワット発電中さん :2012/08/02(木) 17:58:01.63 ID:+3Y1ovSm
RL78をcubeSuite+でソフト書いて使ってるけど、結構快適。 低消費電力が最高クラスなので電源のない山奥での測定でも使えていい感じ。
41 :
774ワット発電中さん :2012/08/02(木) 20:27:03.19 ID:WII5nyVQ
SHCコンパイラも高いし、デバッガも高い。 ARMも、本格的なツールは高いが、そこそこ使える無料コンパイラや フリーのデバッガも多い。 もしかして、ARM陣営から脅されて、わざとSH系の開発ツールを高くして いるのか?
別に収集家ってわけじゃないなら多かろうが少なかろうがあんまり関係ない 銭がないならgccとgdbでいけばいいんじゃねぇの?
>>41 ARMでもgcc使ってる人は多いと思うが、SHでgccだとなんか問題あんの?
SHへの最適化度合いが低いんじゃなかったかな 定量的に述べよといわれても困るけどね
遊びで使うんなら最適化なんて大した問題ではないんでないの? ARMもgccなら大していいコード吐かないぞ。 それか、仕事で使うならツールぐらい金払えば?
> SHでgcc dt命令使うソース書くとハマるかも? sh2aは印方面に改悪?されてるような
>>46 意味不明。バイナリで上位互換なんだから、はまりようが無いでしょ。
スーパースカラで並列実行されたらフラグの動きが変わるとか勘違いしている?
SH2AはSH2のバイナリがすべてそのままで動くよ。CPUは。
ただし当たり前だがタイミングは変わるので、
組込用にポーリング間隔とかをCPUウエイトで作っていたりする場合は、
そういう部分に変更が必要だけどね。
ワケワカなのが釣れるとは
最近のは何気に dt命令でハマらないようになってるな
「最近のは」って、gccでSHがサポートされるようになって何年経ってると思ってんの?w ホントこのスレこないだの ID:ch/FUsSr といいワケ分からん素人多いなww
>>50 とりあえずDT命令ではまったという事例を晒してみてはどうか?
本当にはまりポイントなら情報を共有できるし、
大幅に勘違いしているのであれば、優しい人から指摘してらえるかもしれないし。
ただgccでdt命令がとか言っている時点で、だいぶずれているとは感じるので、
多分後者だとは思うんだが。
>>52 別に勘違いでもいいよ、何気に治ってるから
4.7.1だよ、見たのは、過去の追っかけまでやる気ないから
>>53 そのスタンスだと成長しないぞ。白黒つけておくべきだと思うがね。
DT命令がSH2→SH2Aで改悪されていることはあり得ない。
なぜなら、動きは同じだから。(つまり、改良もされていない。)
それでも君が確かにはまったというのなら、それはgccのバグに命中したということだろう。
見てみれば、4.7.1は最新リリースではないか。
http://gcc.gnu.org/ その後のバージョンは4.8.0だが、これはリリース前でChangesノートが整備されていない。
「直っている」というのであれば、ここに記述されるはずだが、残念ながら不明だ。
あと、何故か4.5.4が4.7.1よりも後にリリースされているようだが、これは何故だろう?
プロジェクトが分岐しているというのは、何か確実にそうせざるを得ない事態があるということだ。
gccの進め方は知らないが、見たところ、大量のRegressionが積まれているようだから、
4.5.4というのはRegression済みのStable-Releaseなのか?
もし仮に最新リリースのgccのバグに命中する記述があるというのなら、それは非常に有益な情報だから、
出してみてはどうかね?
もし仮にそれが君の大幅な勘違いであったとしたら、
それはこの機会に修正しておいた方が君のためにもなると思うし。
>>54 gccの追っかけ歴は2.9?から
archに依存したところを見始めたのは4.4の頃
自前patchのファイル名見る限り、4.4の時に見つけたようだ
(mdファイルが読めるようになったからね)
2.9の頃shの割り込み抜けるとき(sh3/4はハマらない)、遅延分岐直後にレジスタ復帰があって、ハマった口
治ったのは4.5になった頃かな
>あと、何故か4.5.4が4.7.1よりも後にリリースされているようだが、これは何故だろう?
安定版という事でメンテしてるだけのような
backportみたいなのは期待しないほうがいいよ
個人的にやってることだからね。
壊れた人間の戯言だと思ってもらってもいいよ
>>55 話を整理すると、
4.4でmdファイルのバグを見つけ、自前でパッチ。
4.5の頃に修正された模様。
4.7.1で改めて試してみたところ、正しく動作していた。
ということかな。まあこれなら特に追う必要はないが、
4.4.xがバグっている可能性があるというのはそれなりに有益な情報だろう。
4.4.7が2012/03/13にリリースされているし、実際に使っている人もいるかもしれない。
その場合、4.4.xでどうしても腑に落ちない動きをするようなら、
4.5.4で試してみるという手があるということだね。
ちなみに内容は何?
記述されている内容だと、RTE命令の遅延スロットにレジスタ復帰命令があって、
いまいち動作しなかったということ?
SH3/4とSH1/2は割り込みが違う。
SH3/4は割り込み時は特権に切り替わり、レジスタも切り替わるから、レジスタ退避をする必要がない。
従って、レジスタ復帰命令がRTEの遅延スロットに存在することはありえない。
これに対して、SH1/2はレジスタ退避が必要なので、
RTEの遅延スロットにはお約束的に MOV.L @R15+,R0 が来そうだが、これがイマイチだったということか?
まあもう直っているというのなら、単なる興味の範囲なので、覚えている範囲で答えてくれればうれしい。
(ちなみにRESBANK命令かとも思ったが、この命令は遅延スロット例外になるので、
さすがにこのレベルの大ポカは無いと信じたい。
ただ、mdファイルのチェックは割り込み無しで行うだろうから、普通にすり抜けても不思議ではないが。)
どうでもいいが、mdファイルには、SH-Mediaがしっかり登録されているんだな。
>>57 ありがとう。
そして、すまない。最近やってないから思いっきり間違えました。
遅延スロットにスタックから復帰する命令があった時点でアウトだな。
これでは正しく復帰できるはずがない。
RTEの遅延スロットは基本NOPだね。
で、そうなってなかったというのが1つ目だね。つまり、
「RTE後の遅延スロットにスタックからの復帰命令が入るバグ」だね。
2つ目を見る限り、2001には発見されていたようだ。それが2010になっても継続しているというのは、
mdで使っているLLVMでは遅延スロットの記述が上手くできないということなのかな?
そちらの言い分だと
「遅延分岐の遅延スロットにPCを使う命令(MOV.L @(disp,PC),Rx等)が置かれるバグ」
もあるということかな?まあ何でもかんでも遅延スロットに入れるということであればそうなるし、
これを防ぐのはmdの仕様では上手く記述できないというのであれば、ある意味どうしようもない。
遅延スロットの基本は、
A1.遅延分岐命令を遅延分岐でないと仮定して普通に記述。
A2.遅延分岐命令と1つ前の命令を入れ替えられる場合、入れ替える。駄目な場合、NOPを挿入する。
A3.NOPが挿入された場合、分岐等が届くかチェックする必要がある。
あるいは、
B1.遅延分岐命令は分岐命令+NOP命令として、2命令として記述。
B2.遅延分岐命令と1つ前の命令を入れ替えられる場合、入れ替える。
B3.入れ替えた場合、不要になったNOPを削除し、コードサイズを削減することも可能。
この場合、基本的に届くが、dispの再計算は必要。
(ちなみに、B2,B3は省略可能。)
なのだが、mdを読んでcc→asの流れだと、無理はあるよね。
上記A,Bの手法はmdとasにまたがっているから。これはgccの限界かもね。
とりあえずmdを記述できるのなら、B1で対策してみてはどうかな。
遅延スロットが全部NOPになっちゃうけど、動くようにはなるよ。
B2,B3はasに入る前にスクリプト処理でやってもいいし、やらなくても動きはするし。
dtの件だが、define_peepholeはいっぱいあるんだが、該当は11525-11536行かな?
こちらは、gcc-4.7.1/gcc/config/sh.mdを見ている。4.8の方がよければそちらを見るようにする。
ただ申し訳ないが、こちらはSHにはそれなりに詳しいつもりだが、mdを読めるわけではないので、
なんだこの呪文は???状態だ。
読み方の簡単な説明サイトがあれば紹介してくれると助かる。
あとgccにも詳しくはないんだが、こちらの理解だと上記のように、
「mdを読んでccでLLVM的な物を作成、それを各CPU命令にマッピングしてasでオブジェクトを吐く」
と思っているんだが、そちらの言い方だと違うようだな。
「mdを辞書のように参照しながらccが直接asが食えるファイルを吐く」のか?
で、その場合、何らかのログにmdのどこを利用したということが記述され、
それを参照すればどの最適化がどこで行われているかも確認が可能、ということなのかな。
だとすると単純に「通らなくなった」のは、「対策が行われた」可能性もあるが、
ただ単に「テストパターンが網羅的ではなくなって、検出できなくなっただけ」の可能性もあるな。
まあこっちは正直mdを理解するのは時間がかかりそうだから、
駄目な例をC+アセンブラで示してくれると助かる。
完全に興味の範囲で申し訳ないが。
しかしこれを見る限り、gccも結構な確率でバグに遭遇するということだね。
だからそれなりに古い奴のリリースも継続する、ということか。
(define_peephole [(set (match_operand:SI 0 "arith_reg_operand" "=r") (plus:SI (match_dup 0) (const_int -1))) (set (reg:SI T_REG) (eq:SI (match_dup 0) (const_int 0)))] "TARGET_SH2" "dt %0") をpeephole2化して、自分でハマったって落ちだった 悪かった
>>59 現状まだ3割くらいしか理解できてないが、まあそれでも返答してみる。
何を書こうとしているのかは分かるが、この記述なら大丈夫とかを判定できるレベルではない。
間抜けなところは指摘してくれ。ファイルは4.7.1。
●1つ目
5017 ;; Define additional pop for SH1 and SH2 so it does not get
5018 ;; placed in the delay slot.
5019 (define_insn "*movsi_pop"
5020 [(set (match_operand:SI 0 "register_operand" "=r,x,l")
5021 (match_operand:SI 1 "sh_no_delay_pop_operand" ">,>,>"))]
5022 "(TARGET_SH1 || TARGET_SH2E || TARGET_SH2A)
5023 && ! TARGET_SH3"
5024 "@
5025 mov.l %1,%0
5026 lds.l %1,%0
5027 lds.l %1,%0"
5028 [(set_attr "type" "load_si,mem_mac,pload")
5029 (set_attr "length" "2,2,2")
5030 (set_attr "in_delay_slot" "no,no,no")])
遅延スロットには、以下命令を置くな、ということか。
+ mov.l %1,%0
+ lds.l %1,%0
+ lds.l %1,%0"
で、結果的にNOPになっちまうのはまあ許容範囲ではないか。
">,>,>"の意味が分からないんだが、これは何?
ただ、SH3でも遅延スロットに MOV.L @(disp.PC),Rxを置くべきではないと思われる。
ここの !TARGET_SH3 は外すべきではないかと。
RTEの遅延スロット(R15変化)、BRAの遅延スロット(PC変化)とかを区別していないのが問題か。
●2つ目
542 ;; On the SH and SH2, the rte instruction reads the return pc from the stack,
543 ;; and thus we can't put a pop instruction in its delay slot.
544 ;; ??? On the SH3, the rte instruction does not use the stack, so a pop
545 ;; instruction can go in the delay slot.
546
547 ;; Since a normal return (rts) implicitly uses the PR register,
548 ;; we can't allow PR register loads in an rts delay slot.
549
550 (define_delay
551 (eq_attr "type" "return")
552 [(and (eq_attr "in_delay_slot" "yes")
553 (ior (and (eq_attr "interrupt_function" "no")
554 (eq_attr "type" "!pload,prset"))
555 (and (eq_attr "interrupt_function" "yes")
556 (ior
557 (not (match_test "TARGET_SH3"))
558 (eq_attr "hit_stack" "no")
559 (eq_attr "banked" "no"))))) (nil) (nil)])
4.7.1でもSH3限定は残っているように見える。ただ実際、それでもいい気はする。
●dt
同一言語(md)で記述できる以上、peepholeでもpeephole2でもきちんと動作するべきだと思うし、
移動したらバグりました、というのも妙な気がするが、それは、
A. dt命令はpeepholeだとOKでpeephole2ではバグります、
ではなくて、
B. dt命令に当たらなくなったのはpeephole2に移動したからであって、相変わらずバグってます、
ということ?
555 (eq_attr "interrupt_function" "yes") 556 (ior 557 (not (match_test "TARGET_SH3")) 558 (eq_attr "hit_stack" "no") 559 (eq_attr "banked" "no")))) よく見ると壊れた人には理解できないことしてるな ●dt 随分前のことでよく覚えてない おかしなコードを吐いていたような気がしただけかもしれない 置き換えだけじゃdt命令をうまく使えないので追加のパターンを書いてた 悪かった、すまんかった
>>62 いや、別に責めたいわけではない。そういう奴はどのスレにもいるが、
こちらは技術論で話して、こちらの知らない知識を得ようとしているだけだ。
当初は「単なる無知が自分のことを棚に上げてSHの悪口を言いたいだけか?」とも思っていたが、
実際にそちらの出してきた情報からすると、現在は、
かなりの知識があり、実力もあり、自分でも対応出来る人が、思い出を語ったということだと認識している。
実際、mdを読める奴も、読もうという気概がある奴もそんなにはいないので、
それに自己パッチを当てて利用するというのはかなりの手練れだ。普通はやらないし、出来ない。
とりあえず現在のところを纏めると、
●事実として、gccでは遅延スロットの取り扱いに難があり、
2001年に発見されたバグが、2010になっても再出(or継続)していたりする。
●dtについてはよく覚えていないので不明。
ということか。ただ、そちらの実力からするとdtも勘違いではなく、バグっていた可能性の方が高いと推測される。
SH2Aで何らかの最適化が行われるようになった結果、そのバグに命中しやすくなったのだろう。
まあ思い出したら教えてくれ。
おそらくgccは遅延スロットの取り扱いが上手くできないんだろう。遅延スロットについては
>>58 に示したとおり、
asのプリプロセッサとして実装すれば3日で実装でき、バグる事もないはずだが、
ccのプリプロセッサ?として実装しているから無理があり、デグレードしたりするんだと思う。
スクリプト処理を挿入するのが手っ取り早いが、駄目なら、asで2〜4バイトの可変長仮想命令として
BRA/NやBSR/N等をすべて定義し、as内で遅延分岐命令に置換していくというやり方がいいように思う。
ccが吐くのが中間コードになるが、これだとasだけを入れ替えればいいので、gccにも組み込めるだろう。
ただいずれにしてもmd内での遅延スロットの記述が全部不要になるので、作業としては大がかりになるが。
とはいえ、まあ、gccが今更的なバグもそれなりに含んでいる可能性があるということは分かった。
実際にmdファイルは4.7.1→4.8でも大量に書き換えられている。
それがバグ対策か最適化追加かは不明だが、いずれにしてもデグレードの可能性もそれなりに発生しており、
そしてそもそも取り扱いに難がある遅延スロット周りの記述では実際にデグレードすることもある、ということだろう。
その結果、2001年に発見されたバグが2010にも再出するわけだ。
まあ勉強にはなったよ。ありがとう。
shの遅延スロットの処理はちゃんとできてるよ、gccは
ttp://gcc.gnu.org/ml/gcc-patches/2010-02/msg01142.html 勢いで作ったんであろう?これが災いしてるだけのような
(自前でやる時はこの処理殺してる)
555 (eq_attr "interrupt_function" "yes")
556 (ior
557 (not (match_test "TARGET_SH3"))
558 (eq_attr "hit_stack" "no")
559 (eq_attr "banked" "no"))))
ここの処理をいじればいいだけ
合ってそうに見えるけど、割り込み周りの処理書いて、
archに合わせてコンパイルして汗吐かせてみたら、どうなってるのかな
って感じ
gccのクロス開発環境に興味があるなら
crosstool-ng
で検索してみたら
お手軽?スクリプト、patch集みたいなのが見つかる
>>64 少し理解が進んだ結果、訂正。
やっぱこれ間違っているっぽいな。
542 ;; On the SH and SH2, the rte instruction reads the return pc from the stack,
543 ;; and thus we can't put a pop instruction in its delay slot.
544 ;; ??? On the SH3, the rte instruction does not use the stack, so a pop
545 ;; instruction can go in the delay slot.
546
547 ;; Since a normal return (rts) implicitly uses the PR register,
548 ;; we can't allow PR register loads in an rts delay slot.
549
550 (define_delay
551 (eq_attr "type" "return")
552 [(and (eq_attr "in_delay_slot" "yes")
553 (ior (and (eq_attr "interrupt_function" "no")
554 (eq_attr "type" "!pload,prset"))
555 (and (eq_attr "interrupt_function" "yes")
556 (ior
557 (not (match_test "TARGET_SH3"))
558 (eq_attr "hit_stack" "no")
559 (eq_attr "banked" "no"))))) (nil) (nil)])
以下勘違いがあれば指摘してくれ。汎用部分はSHに合わせてある。
define_delayはgcc内で定義されている型で、ベクトルで
[遅延スロットに置いていい命令
分岐成立時に遅延スロットが無効化される条件
分岐不成立時に遅延スロットが無効化される条件]
を並べる。SHの場合は遅延スロットが無効化されることはないので、後ろ2つは常にnilとなる。
問題は先頭の要素で、上記記述だと、
rts命令の時、!ploadか!prsetなら置いていい
rte命令の時、TAGET_SH3でないか、hit_stack属性がnoか、banked属性がnoなら置いていい
という風に読める。だとすると、TARGET_SH3がついてない場合、
つまりSH1,2,2Aの場合、「何でも置いていい」ということになる。これは駄目だろ。
これでは、スタックからのロードを許可してしまう。
544-545のコメント通りの動きをさせたいなら、557のnotを削除するべきだと思うが、どうか?
ただ言っちゃあ悪いが、コメントを見る限り、ploadはPRへのロード、prsetはPRへのコピーだから、
この2つだけ禁止しても駄目だろとは思う。例えば、PC相対ロード命令も禁止すべきだ。
実際には、rts命令の周りでリテラルをロードするような関数を書くことがないから問題ないだけで、
例えば、
int foo(){
return 0x12345678;
}
とかいう間抜けな関数を作った場合、rtsの遅延スロットにPC相対命令が来ると思われ、バグると見た。
これが抜けているというのは、「分かっている人がすべての状況を考えて記述する」のではなく、
「バグがあったらパッチを当てる」方式で開発が行われているということであり、
これではバグは永遠に収束しない。ちょっと問題があるな。
遅延スロットのモデルは、上記のように
[置いていい命令、無効化条件、無効化条件]のセットで記述され、
命令順の入れ替え自体はgccがやってくれるみたいだね。
SHならこれで問題ないから、mdが間違っているのが問題だね。
(define_attr "in_delay_slot" "yes,no" (cond [(eq_attr "type" "cbranch") (const_string "no") (eq_attr "type" "pcload,pcload_si") (const_string "no") (eq_attr "needs_delay_slot" "yes") (const_string "no") (eq_attr "length" "2") (const_string "yes") ] (const_string "no")))
>(eq_attr "type" "pcload,pcload_si") (const_string "no") PC相対ロード命令、ここで判定してる + (and + (eq_attr "hit_stack" "no") + (eq_attr "banked" "no"))))) (nil) (nil)]) mdの中身がどこまで読めてるかは自分でもわからんけどね
>>67 >mdの中身がどこまで読めてるかは自分でもわからんけどね
それはこちらも同じ。ただそもそも読める奴もそうはいないので、
間違いがあったら教えてもらいたいとは思うから、相手するぜ。
しかし()の多い糞言語だと言われているのは実感する。
あと、2chだと半角インデントが全部潰れて読みにくいんだが、
これの対策を教えてエロい人。
●前半
489 (define_attr "in_delay_slot" "yes,no"
490 (cond [(eq_attr "type" "cbranch") (const_string "no")
491 (eq_attr "type" "pcload,pcload_si") (const_string "no")
492 (eq_attr "needs_delay_slot" "yes") (const_string "no")
493 (eq_attr "length" "2") (const_string "yes")
494 ] (const_string "no")))
538 (define_delay
539 (eq_attr "needs_delay_slot" "yes")
540 [(eq_attr "in_delay_slot" "yes") (nil) (nil)])
mdファイルの動きは知らないが、単純に上から読んでいくとすると辻褄が合わないから、
スクリプト言語のように変数は前状態が残った上で次のinsnを読んでいくと見た。
だとすると、489-494、は、以下のように読める。
bool in_delay_slot = false;
if ( !条件分岐命令 && !(PCロード命令 || PCロード命令.L) &&
(needs_delay_slot || length==2 || true)) in_delay_slot = true;
一方、538-540は
int delay[3] = {false. false, false};
if (needs_delay_slot) delay[0] = in_delay_slot;
で、delay[0]に指定されている命令は遅延スロットに置いていいから、結論、
条件分岐命令は、置かれない。
PCロード命令は、置かれない。
needs_delay_slot属性がついていたら、置いてもいい。
長さ2の命令なら、置いてもいい。
長さ2の命令でなくても、置いていい。
さてここで間違いは、2点。
SH2Aは32bit命令を遅延スロットに置くことが出来ないから、needs_delay_slotがlengthより優先されているのは間違い。
これだと32bit命令が遅延スロットに置かれてしまいそうだ。
次に、493行は意味をなしていない。length==2に限定しているのであれば、デフォルトの値はnoであるべきであって、
(eq_attr "length" "2") (const_string "no")
とするべき。つか、ボロボロだな。ただまあ、他の部分でパッチ当てが行われているのかもしれんが。
SH2Aの改悪点に見えたのはここか?SH1,2は32bit命令を持っていないから、このバグにはヒットしない。
記述は美しくないが、PC相対命令が遅延スロットに置かれないようになっている事は理解した。
(
>>65 の後半部の指摘は間違いであることを認める。)
ただ、in_delay_slotで全体記述をするのか、命令ごとの記述で網羅するのかは、どちらかに統一しないと読みにくい。
まあパッチ当てで作ってきているんだろうし、有志なんだから致し方ないと言えばそうだが。
●後半
ああ、そんな感じだと思う。
rtsの後の遅延スロットにスタック復帰を入れたいなら、それでいいと思う。
in_delay_slot 中身を or で読んでるみたいだけど and で読むんじゃねえか (cond [ ] (const_string "no")) ×長さ2の命令でなくても、置いていい。 こっち系の流れは珍しいな mdの中身をそれなりに読もっうってのはもっと珍しい 半角SPは らしい、htmlでは
&nsp; 半角だから消えてしもうた
流れって言っても2人でやり合っているだけではあるがな。 まあこの話題についてこれる奴もそうそういないというのもあるが。 半角、 だな。 纏めて変形して書いたから分かりにくかったか。英語版も確認したが、この部分は同じだった。 (cond [test1 value1 ...] default) この式の第一オペランドはあるベクトルであり、偶数個の式をもち、test 式と value 式の対からなる。cond 式の値は最初の真である test 式に対応する値のものである。真となる test 式がない場合は、cond 式の値は default 式の値である。 つまり、上から評価だから、より正確には、 489 bool in_delay_slot; 490 if (cbranch) in_delay_slot = true; 491 else if (pcload || pcload_si) in_delay_slot = true; 492 else if (needs_delay_slot) in_delay_slot = true; 493 else { 493a if (length==2) in_delay_slot = true; 493b else in_delay_slot = true; 494 } else in_delay_slot = false; と読んだんだが、「最初の真」というのが微妙で、length!=2だと真にならないから、493bは関係ないのかも。 そうでないと記述に一貫性がなくなるし。 (490-492のelse節の存在がないのと整合性が取れない) だとすると、2つ指摘した内の下側、デフォルト値についてはバグではなくなるが、紛らわしいから止めろだな。 ただこれでも needs_delay_slot が優先されていて、この時点では命令サイズを考慮していないのはバグだろ。 ここの記述だけでは32bit命令を遅延スロットに配置できてしまう。
くっ、こっちも、半角消えてしまった。&nbsp;だな しかし、これ、明らかに開発の仕方間違っているよな。 Cコンパイラのバグをレポートしてくるような奴は間違いなくCが読めるんだから、 mdもC風に書ければ、バグ取りも捗るだろうに、なんでLispなんだよ。 EmacsがLispなのはまあ信者が書いたとしても、 gccがLisp記述を必要とするのは結果的に開発速度を落としているだけだよな。
すまん、else節の対応がおかしいな。 まあ分かる範囲だと思うが、ここで誤解を招いてもくだらんので、修正版を投下しておく。 489,494 bool in_delay_slot = false; 490 if (cbranch) in_delay_slot = true; 491 else if (pcload || pcload_si) in_delay_slot = true; 492 else if (needs_delay_slot) in_delay_slot = true; 493 else { 493a if (length==2) in_delay_slot = true; 493b else in_delay_slot = true; 494 } と読んだ。493bについては多分読み間違いで、これは不要なんだろう。だから、正しくは、 489 bool in_delay_slot; 490 if (cbranch) in_delay_slot = true; 491 else if (pcload || pcload_si) in_delay_slot = true; 492 else if (needs_delay_slot) in_delay_slot = true; 493 else if (length==2) in_delay_slot = true; 494 else in_delay_slot = false; となるのかな。
素人的な感想 lisp風な書き方は中間的な表現に適している lisp->cの変換処理は今や普通になっている mdの中は部分にcで書かれてるところもある 机上より実践的なんで、俺 sh、h8300系は初期の頃からあるので、ボロボロになってる可能性はある (建築でいう建て増し状態?、ハマるコードを吐くってわけじゃないから) 比較的新しめのv850のmdはすっきりしてるよ v850の命令体型があってたのかもしれんけど intel80系の命令体型のrl78をあんな方法でレジスタ増やして gccに入れるとは思わんかったな
>>74 >lisp風な書き方は中間的な表現に適している
これ本当に自分の頭で考えた意見か?
信者がそういうことにしたいのを受け売りしているだけではないか?
本当にそう思うなら、どこをどう捉えたらそう思えるのか教えてくれ。
こちらの解釈が正しければ、cond節の後半部分、
490 (cond [(略) (const_string "no")
491 (略) (const_string "no")
492 (略) (const_string "no")
493 (略) (const_string "yes")
494 ] (略)))
の略していない部分には当たることはない。
つまり、何を書いても良いし、論理反転を書いても同じ動作をする。
ただし、何か書かなければならない。
こういうところだけでも十分に糞言語だと思うがな。
絶対に当たらない記述なんて、記述させるべきではない。単なるバグの温床にしかならない。
この言語は廃れて当然だ。まあLispがこれと同一かどうかは知らんがね。
>mdの中は部分にcで書かれてるところもある
これは””で囲まれているから生きているかどうか不明だったが、
その言い方だと埋め込みCを出来るようにしたということだな。
つーか、最初からC風に書くべきだよ。Cコンパイラなんだから。
当時も老害がいたということだろうがね。
V850とRL78については行数が少ないのは見たが、
includeが使われているので実際のところは不明だな。
ただ、最適化記述もこの中に含んでいるので、
アホコードを出せばいいのであればmdはすっきり記述出来るから、詳しく見ないと何ともいいようがないが、
実際のところ、V850とRL78は仕様を知らないので、mdを詳しく見る気はない。申し訳ない。
>>75 (define_insn "divsi3_i4_int" ;<jump,jsr系
略
&nsp;&nsp;[(set_attr "type" "sfunc")
&nsp;&nsp;&nsp;(set_attr "needs_delay_slot" "yes")])
(define_insn "branch_true";<branch系
略
&nsp;&nsp;[(set_attr "type" "cbranch")])
(define_insn "movsi_i"<転送系
略
&nsp;&nsp;[(set_attr "type" "pcload_si,move,movi8,mt_group,load_si,mac_gp,prget,arith,store,mac_mem,pstore,gp_mac,prset,mem_mac,pload,pcload_si")
&nsp;&nsp;&nsp;(set_attr "length" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*")])
読み間違ってた?、俺
cに変換されたコード覗くと単純な変換でない、in_delay_slot,needs_delay_slot
ここまで追いかけたことは、今までなかったな
lispは個人的には好きな方じゃないけど
gccいじくり回す分にはmdをlispと意識したことはなかったな
489 (define_attr "in_delay_slot" "yes,no" 490 (cond [(eq_attr "type" "cbranch") (const_string "no") 491 (eq_attr "type" "pcload,pcload_si") (const_string "no") 492 (eq_attr "needs_delay_slot" "yes") (const_string "no") 493 (eq_attr "length" "2") (const_string "yes") 494 ] (const_string "no"))) in_delay_slot = no; if (!cbranch) if (!pcload) if (!pcload_si) if (!needs_delay_slot) if (length == 2) in_delay_slot = yes;
この流れに参加しない奴は純正使ってるんだろう、俺もだが 仕事でやってたら、その状況を見てもgccは無理
いちど、gcc使えっていう仕事がきて使ったが、RAMが宣言した順番に並ばなくてくずおれた覚えしかないな。
>>77 こちらにずいぶん間違いがあったようだ。その解釈でいいと思う。
もう一度おさらいする。define_attrの内部のcondについては、
(cond [test1 value1 ...] default)
この式の第一オペランドはあるベクトルであり、偶数個の式をもち、test 式と value 式の対からなる。cond 式の値は最初の真である test 式に対応する値のものである。真となる test 式がない場合は、cond 式の値は default 式の値である。
だから、上から順番に評価し、test1式が当たれば"value1"になる。
(test1式がtrueになった時点で値は"true"になる、と勘違いしていた。
その他の勘違いもあり、
>>68 ,71-73は間違い。
他の部分で後ろの値はデフォルト値だというのがあった、
つまり常にif then にはelse節が必要みたいなのがあったと思ったから、それとも混同した。)
ということは、
489 bool in_delay_slot;
490 if (cbranch) in_delay_slot = false;
491 else if (pcload || pcload_si) in_delay_slot = false;
492 else if (needs_delay_slot) in_delay_slot = false;
493 else if (length==2) in_delay_slot = true;
494 else in_delay_slot = false;
こうなる。これで実質
>>77 と同じ。日本語にすると、
cbranchは、置けない。←無条件も駄目なはずだが、他で定義されている?
pcload, pcload_siは、置けない。
needs_delay_slotがyesだったら、置けない。←これがおかしい。
上記に該当せず、length==2なら、置ける。
これだと、32bit命令が遅延スロットに置かれることはないが、
遅延スロットは常に空になってしまいそうだ。
needs_delay_slotの取り扱いだが、
538 (define_delay
539 (eq_attr "needs_delay_slot" "yes")
540 [(eq_attr "in_delay_slot" "yes") (nil) (nil)])
を見る限り、needs_delay_slot=="yes"でない限り、in_delay_slotは評価されない。
だから、needs_delay_slotの取り扱いが492行と539-540行で矛盾している。
修正するとしたら、492行を削除か、影響を最小限にとどめたいなら、
(and (eq_attr "needs_delay_slot" "yes") (eq_attr "length" "2")) (const_string "yes")
だろう。
つまり、
>>77 の解釈は正しくて、if (!needs_delay_slot) なんだが、
needs_delay_slot属性はその名の通り遅延スロットを必要とする場合に"yes"になるようなので、
遅延スロットを必要としている場合、遅延スロットに置いていい命令はない、となり、矛盾する。
ここは if (needs_delay_slot && length==2)となるべきで、上記修正記述がそれ。
ただこれだと「遅延スロットは常に空」になるはず。多分そうではないのだろうから、
おそらくは他でパッチ当てがなされていて、そこに該当するのだろう。
つまり、489-494と538-540はこのままでは単なる無効記述であって、害を及ぼしているわけではないのかも。
(define_delayは何ヶ所でも宣言出来るので、他でパッチ当ては出来る。
ただし、複数に該当してはいけないという糞仕様。
このため、単純に上記修正記述を採用すると、
パッチ当てが既になされていた場合、そこで多重ヒットし、gccが落ちるはず。マジ糞仕様。)
>>76 needs_delay_slotの取り扱いがこれまたひどいんだが、
これはgccの仕様が糞だからであって、mdが悪いわけではないだろう。
TEXT→RTLで遅延スロットを取り扱おうとしているから、
最適化記述にBRAとかを持ってくるたびに呪文のように同じ needs_delay_slot の記述を並べないといけない。
asのプリプロセッサとして実装すれば1命令につき1箇所で済むのだが。まあここら辺はどうしようもない。
ではきっちり遅延スロットの記述が出来ているかというと、
54 ;; %# -- output a nop if there is nothing to put in the delay slot
ということだから、%# と (set_attr "needs_delay_slot" "yes")は必ず対になって現れるべきだが、
そうなっていない箇所が数ヶ所ある。種類は3種類で、
1780行、blink命令…仕様を知らないので不明、SH5だからどうでもいい。
define_insn_and_split系…そもそも機械語記述がないので%#をつけようがないからしょうがない?
7913行、bra命令…明らかに抜けている。←バグだと思われる。
これに命中した場合は、braの遅延スロットをnopで埋めてくれない、ということになる。
さて、現状でのこちらの主張および間違い等を整理しておく。バージョンは4.7.1(最新リリース)。
○ SH3未満でRTE命令の遅延スロットにスタック復帰を入れてしまうバグがある。←合意した。
○ PC相対命令が遅延スロットに置かれることはない。←他で対策がなされていた。
○ 32bit命令が遅延スロットに置かれることはない。←こちらの勘違い。
○ mdは不要な記述を書かせる言語ではない。←勘違いでした。
現在の主張:
? 492行はバグである。ただしヒットしない。
? 489-494、538-540は無効記述である。機能しない。悪さもしない。
? 7913行はバグである。ヒットすると、braの遅延スロットに何も命令が無いことがあり得る。
? 無条件分岐が遅延スロットに置かれないようにどこかで対策されているか?当たるとしたらSH1のみだが。
>>79 ローカルか?
SHの場合、MOV.x (disp,Rm),R0があって、これの届く範囲がB,W,Lによって異なるから、
スタック上に置かれるローカルは最適化がなされればR15に近い順にchar, short, intとなる。宣言順ではなく。
ただし、gccで出来ているかどうかは知らない。
もう純正買うかアセンブラでもやれば?
(set_attr "needs_delay_slot" "yes")
needs_delay_slotの属性がyes (1)
in_delay_slot = no;
if (type!=cbranch)
if (type!=pcload)
if (type!=pcload_si)
if (needs_delay_slot!=yes)
if (length == 2)
in_delay_slot = yes;
>>77 の書き方が間違ってた
すいません、アセンブラの勉強不足なんですが、 RL78の純正コンパイラ、実行速度優先のオプションで、 unsigned char x[10]; ...... P1 = *x++; というコードの最後の行が MOVW AX,[HL+0EH] INCW AX MOVW [HL+0EH],AX DECW AX MOVW DE,AX MOV A,[DE] MOV P1,A になるんですが、アセンブラの最初の4行が足して引いてで、どうしても無駄に見えるんですが、 こんなもんでしょうか。
あぁ、すいません、理解しました。バカでした私
>>83 より原文を尊重した書き方だとそうなるが、意味は同じでは。
問題は、 needs_delay_slot == "yes" の時は必ず in_dely_slot = "no" となってしまうことであり、
これでは540がyes側に活性化されることはない。
538 bool (define_delay
539 (eq_attr "needs_delay_slot" "yes")
540 [(eq_attr "in_delay_slot" "yes") (nil) (nil)])
ただ、needs_delay_slotが遅延分岐命令について付加されるのであれば、これにより
>>81 の
「無条件分岐が遅延スロットに置かれないように」していることになるが、これだと、
SH2Aで追加されたJSR/N, RTS/N, RTS/V等の
「遅延スロット無し無条件分岐命令」が遅延スロットに入れられることを防げない。
SH2A以前では無条件分岐命令=遅延スロット付きであったため、
cbranchとneeds_delay_slotで対応出来ていたが、SH2Aには記述が不足している。
だから、
>>81 は、
Q 無条件分岐が遅延スロットに置かれないようにどこかで対策されているか?
○ 遅延スロット付き無条件分岐は対策されており、置かれない。
? 遅延スロット無し無条件分岐については不明。これはSH2Aのみ。
となる。本来なら needs_delay_slot ではなく
ncbranch_with_delay_slot と ncbranch_without_delay_slot 属性を定義し、これで対応すべきだ。
ただ現実的にはSH2で遅延スロット無し条件分岐命令が追加されているので、
ここに命中させるCコードを書くのは多分不可能だろう。
だから、問題ないといえば問題ないし、問題があれば修正する方式の開発では放置だな。
ちょっと言い方が曖昧だったので追記する。
mdの走査がどのように行われるのか不明なので、ややあやふやになっている。
こちらは、スクリプト言語同様、前の結果が残っている状態で次を読み込んで走査すると仮定している。
この場合、構造としては、
A.前の命令の情報が残った状態での記述。
B.needs_delay_slot情報の更新。
C.今の命令の情報での記述。
の順に記述されなければならない。
見たところ、489-494,538-540はAの部分に記述されている
(needs_delay_slotは「前」の命令が遅延スロットを必要としているかどうかを示す)ようなので、
492行は不要だという認識。
これがCの部分に記述されている
(needs_delay_slotは「今」の命令が遅延スロットを必要としているかどうかを示す)のであれば、
>>86 のように、「遅延スロット付き命令が遅延スロットに置かれないようにする」効果を持つ。
この場合は、492は必要であり、バグではない。
このmdの走査方法が不明なんだが、知っている人いないか?
そんな上から目線の奴に答える必要はないね
ここをどう読むかでしょう (define_insn "*return_i" (define_insn "calli" (dbr_sequence_length () == 0) SH2Aのときに関数が味噌? 机上だとハマりまくるほうだから、コンパイラの吐く汗見ながらやるなあ、俺は
90 :
お前の上司 :2012/08/07(火) 13:21:14.65 ID:/AMs0WlJ
>>89 こちらは全時間を思考に投入出来るという意味で机上派だが、
これ以上の深入りをする気なら-daから切り崩す方が早いと判断、クロス環境の構築を始めてる。
どうにも情報がなさ過ぎるのは、おそらく-daで一目瞭然なんだろうと期待している。
無駄な行き違いはあらかじめ避けておきたいので、
そちらの環境を教えてくれれば合わせるように努力する。
今の所、Cygwin上に4.7.1のsh-elf向けクロス環境を構築する予定。
gccのクロス環境は初めてなので、はまりどころには確実にはまるだろうから、助言頼む。
今それ以前のnative環境構築のstage3のjava(JNI)で引っかかっている。
出来れば対策をしようと試みているが、javaの知識はないからググル事くらいしか出来ない。
どうせ要らないしstage3だから無視するか、VM上のLinuxでやり直すかとも考えている。
ちょっとすぐ下のTRAPAが目に入ったので訂正。忘れてました。
× SH2A以前はすべての無条件分岐が遅延分岐
○ 上記は間違い。SH1もTRAPAを持っており、この命令は無条件分岐で遅延スロット無し。
http://www.sra.co.jp/public/sra/product/wingnut/gcc/gcc-j.html#RTL RTL は、Lisp 言語のリストにヒントを得たものである。
http://www.sra.co.jp/public/sra/product/wingnut/gcc/gcc-j.html#Patterns define_insn は一つの RTL 式で、(ry
3. 条件。これは文字列であり、insn 本体がパターンにマッチするかどうかを
最終的に決定するための条件を C 言語の式で表したものである。
どうやら埋め込めるわけではなく、この部分はCで書かなければならないようだ。
なんで混ぜるかね、、、。少なくともどっちかに統一しとけよな、、、。
>>89 引き続き100%机上だが、
9219 (define_insn "*return_i"
9220 [(return)]
9221 "TARGET_SH1 && ! (TARGET_SHCOMPACT
9222 && (crtl->args.info.call_cookie
9223 & CALL_COOKIE_RET_TRAMP (1)))
9224 && reload_completed
9225 && lookup_attribute (\"trap_exit\",
9226 DECL_ATTRIBUTES (current_function_decl)) == NULL_TREE"
9227 "*
9228 {
9229 if (TARGET_SH2A && (dbr_sequence_length () == 0)
9230 && !current_function_interrupt)
9231 return \"rts/n\";
9232 else
9233 return \"%@ %#\";
9234 }"
9235 [(set_attr "type" "return")
9236 (set_attr "needs_delay_slot" "yes")])
DBR_OUTPUT_SEQEND(file)
一個の C の文。全てのスロットの埋め草命令が出力された後に実行すべき文である。必要なら dbr_sequence_length を呼び出して、あるシーケンスで埋められるスロット数(現在、シーケンスを出力中でないならゼロになる)を決定し、NOP命令を幾つ出力するかを決める。
9229-9233行は単純に、SH2Aの時に遅延スロットを埋められる命令が無ければrts/nを、
あればrtsを出力するように読める。
ただ、どっちになったとしてもneeds_delay_slot属性がyesになるのは奇妙。
これは結局、needs_delay_slot属性の本当の意味と、取り扱いに依存する。
名前通りの使い方をしているのならバグ(
>>87 前者)で、
そうでない(
>>87 後者)ならこれで良いが、結果的にバグの温床になっている気はする。
ちなみにTRAPAにはneeds_delay_slot属性はついていないから、
後者の使い方ならバグの可能性がある。
(TRAPAが遅延スロットに置かれることを回避する記述がどこかに必要。)
ただし、TRAPAをC記述で出現させることは多分不可能なので、命中しない。
7316 (define_insn "calli" 7317 [(call (mem:SI (match_operand:SI 0 "arith_reg_operand" "r")) 7318 (match_operand 1 "" "")) 7319 (use (reg:PSI FPSCR_REG)) 7320 (clobber (reg:SI PR_REG))] 7321 "TARGET_SH1" 7322 "* 7323 { 7324 if (TARGET_SH2A && (dbr_sequence_length () == 0)) 7325 return \"jsr/n\\t@%0\"; 7326 else 7327 return \"jsr\\t@%0%#\"; 7328 }" 7329 7330 [(set_attr "type" "call") 7331 (set (attr "fp_mode") 7332 (if_then_else (eq_attr "fpu_single" "yes") 7333 (const_string "single") (const_string "double"))) 7334 (set_attr "needs_delay_slot" "yes") 7335 (set_attr "fp_set" "unknown")]) calliの7316-7335行も上記と同じ。 ただfp_modeについて記述があるんだが、これはよく分からない。 callの度に精度が切り替わる仕様はないから、 サブルーチンでのデフォルト精度が統一されているかどうかを管理しようとしているんだと思うが、 これってgcc側のサポートがないとmd記述だけではそもそも論として不可能な気がする。 まあとりあえず無視しますが。
こっちは読んだ? (define_delay (and (eq_attr "type" "cbranch") (match_test "TARGET_SH2")) ;; SH2e has a hardware bug that pretty much prohibits the use of ;; annuled delay slots. [(eq_attr "cond_delay_slot" "yes") (and (eq_attr "cond_delay_slot" "yes") (not (eq_attr "cpu" "sh2e"))) (nil)])
>>95 ああそれはチラ見していたが、
SH2Eがバグっているというのは知らないから、無視していた。
というか、どれだ?見たところ、FDIVしかない。
http://japan.renesas.com/products/mpumcu/superh/sh7050/sh7055/Technical_Update.jsp 489 (define_attr "in_delay_slot" "yes,no"
490 (cond [(eq_attr "type" "cbranch") (const_string "no")
491 (eq_attr "type" "pcload,pcload_si") (const_string "no")
492 (eq_attr "needs_delay_slot" "yes") (const_string "no")
493 (eq_attr "length" "2") (const_string "yes")
494 ] (const_string "no")))
495
496 (define_attr "cond_delay_slot" "yes,no"
497 (cond [(eq_attr "in_delay_slot" "yes") (const_string "yes")
498 ] (const_string "no")))
576 (define_delay
577 (and (eq_attr "type" "cbranch")
578 (match_test "TARGET_SH2"))
579 ;; SH2e has a hardware bug that pretty much prohibits the use of
580 ;; annuled delay slots.
581 [(eq_attr "cond_delay_slot" "yes") (and (eq_attr "cond_delay_slot" "yes")
582 (not (eq_attr "cpu" "sh2e")))
582 (nil)])
7015 ;; This one is used to preemt an insn from beyond the bra / braf / jmp
7016 ;; being pulled into the delay slot of a condbranch that has been made to
7017 ;; jump around the unconditional jump because it was out of range.
7018 (define_insn "stuff_delay_slot"
7019 [(set (pc)
7020 (unspec [(match_operand:SI 0 "const_int_operand" "") (pc)
7021 (match_operand:SI 1 "const_int_operand" "")] UNSPEC_BBR))]
7022 "TARGET_SH1"
7023 ""
7024 [(set_attr "length" "0")
7025 (set_attr "cond_delay_slot" "yes")])
インデントキープしようと思ったら行の長さがオーバーして駄目だった。
今の所、489-494は現在検討中の記述で、
496-498は cond_delay_slot = in_delay_slot となり、
577 if (type=="cbranch" && TARGET_SH2) {
581 delay[0] = cond_delay_slot; // 遅延スロットに置いていい場合、true
581 delay[1] = cond_delay_slot && !(cpu=="sh2e"); // 分岐成立時にキャンセルされる場合、true
581 }
だから、この記述だと、SH2E「以外」のCPUでは、分岐成立時に遅延スロットはキャンセルされる、と読める。
少なくともSH2では遅延スロットがキャンセルされることはないから、完全にバグ。
コメント通り、「SH2Eに限定」する気であれば、notが要らない。
ただし、define_delayは複数ヒットを許可されていないので、TARGET_SH2"E"を定義してこれを回避しないと駄目。
そもそもSH2Eのバグは知らないので、無いのであれば、記述が丸ごと不要。
7015-7025行については、コメントは理解出来るんだが、記述はさっぱり分からない。
ただ、RTEのところでもnotが要らないように見えた。このnotの扱い方が、こちらの考えているものと違うのかな?
RTEについては、そちらもnotが要らないという見解、かつ検証もなされているということでいいんだよね?
とはいえ、SH2だと遅延スロット付き条件分岐は出にくいとは思うので、そんなに当たらないのかも。
まあ、なかなか当たらない地雷は「バグが出たら直す」的開発では永遠に残ってしまうものだ。
これもそうなんだろう。
ちなみに、もっとひどいのを見つけた。以下引用。
----
http://hp.vector.co.jp/authors/VA000177/html/SH2A.html CQサイトにあるCygwin gcc(SH2A)でビルドする際の注意。
推奨: CFLAGSに -m2a-nofpu を指定すること。
そうしないと、割り込み発生後フォアグラウンド側のプロセスが死ぬ。
理由は全くもって不明。
素のgccは割り込み周りは怪しいからね,shの場合 個人的にはありだと思ってる ハマった人は自力で解決するか、gccのbugzillaにいくんだね ここに早々親切な人がいるとは思わないほうが...
やれば、これくらいの汗吐かせられるかも -m2a-nofpu 0000 47F1 movml.l r7,@-r15 0002 E100 mov #0,r1 0004 4F02 sts.l mach,@-r15 0006 4F12 sts.l macl,@-r15 0008 4F22 sts.l pr,@-r15 000a 7FF0 add #-16,r15 000c 2F10 mov.b r1,@r15 000e D105 mov.l .L2,r1 0010 410B jsr @r1 0012 64F3 mov r15,r4 0014 7F10 add #16,r15 0016 4F26 lds.l @r15+,pr 0018 4F16 lds.l @r15+,macl 001a 4F06 lds.l @r15+,mach 001c 47F5 movml.l @r15+,r7 001e 002B rte 0020 0009 nop 動くかしたわけじゃないから
>>98 割り込み周りはレグレッションテスト用の記述がないんだろう。これはしょうがない。
過去RTEの遅延スロットにスタック復帰をつっこまれて、
それを見て自分でmdを対策して、
その結果、その部分が修正されたのなら、それで十分検証されていると思うよ。
>>99 はいい感じではないかな。
そのNOPをつぶせというのは無理。
そもそもRTEに戻り値はないし、最後はスタックからの復帰を行わなければならないので、
何をどうやっても入れようがない。SHのISAの問題でしょう。
550 (define_delay
551 (eq_attr "type" "return")
552 [(and (eq_attr "in_delay_slot" "yes")
553 (ior (and (eq_attr "interrupt_function" "no")
554 (eq_attr "type" "!pload,prset"))
555 (and (eq_attr "interrupt_function" "yes")
556 (ior
557 (not (match_test "TARGET_SH3"))
558 (eq_attr "hit_stack" "no")
559 (eq_attr "banked" "no"))))) (nil) (nil)])
(一部抜粋)
9426 "movml.l\tr7,@-r15"
9427 [(set_attr "in_delay_slot" "no")])
movml命令が遅延スロットにつっこまれていないのは、in_delay_slot属性(9427行目)が利いている。
というか、これ、冗長なんだな。
552行目で in_delay_slot=="yes"を見ているから、こちらでも止められる。
だが一方、pload, prset 属性で止める命令もある。
これでは統一出来ていないからバグの温床になる。
だから2001年に対策したのが2010にデグレードして再発したんだろう。
有志で建て増しを続けてきたのだから、ある程度しょうがないが、
更地にして立て直すべき時期が来ているということだろう。
ただまあ、これだけ大がかりな記述になってくると、
多少冗長になっても安全方向で行くというのは分かる。
(一部抜粋)
5062 [(set_attr "type" "pcload_si,move,movi8,mt_group,load_si,mac_gp,prget,arith,store,mac_mem,pstore,gp_mac,prset,mem_mac,pload,pcload_si")
5063 (set_attr "length" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*")])
5064
5065 ;; t/r must come after r/r, lest reload will try to reload stuff like
多分これは、パッチ当ての場所を間違えたんだな。
本来は5064行目に9427行目型の記述をするべきだったんだと思う。
そう言った意味でいうと、
>勢いで作ったんであろう?これが災いしてるだけのような(
>>64 )
は当たっている。パッチの質は悪い。
だが、こいつの前に既に汚かったからデグレードしたんだろうし、原因ではないだろう。
【 結論 】 仕事で使うコンパイラは純正に限る 趣味で死ぬほど時間があって、本来の目的と違うところに血道を注げるならgccも選択肢に入る・・・かもしれない
>>92 ビルド通して、sh-elf-gcc -da -g でハロワをコンパイル、
sh-elf-objdump -dS で確認出来るところまではきた。4.7.1だ。
実行環境はないので、動くかどうかは試せない。
000011bc <_main>:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char **argv)
{
11bc: 4f 22 sts.l pr,@-r15
11be: 7f f8 add #-8,r15
11c0: 61 f3 mov r15,r1
11c2: 71 c8 add #-56,r1
11c4: 11 4f mov.l r4,@(60,r1)
11c6: 61 f3 mov r15,r1
11c8: 71 c8 add #-56,r1
11ca: 11 5e mov.l r5,@(56,r1)
puts ("Hello, World!") ;
11cc: d1 05 mov.l 11e4 <_main+0x28>,r1 ! 382c
11ce: 64 13 mov r1,r4
11d0: d1 05 mov.l 11e8 <_main+0x2c>,r1 ! 12a8 <_puts>
11d2: 41 0b jsr @r1
11d4: 00 09 nop
return EXIT_SUCCESS ;
11d6: e1 00 mov #0,r1
}
11d8: 60 13 mov r1,r0
11da: 7f 08 add #8,r15
11dc: 4f 26 lds.l @r15+,pr
11de: 00 0b rts
11e0: 00 09 nop
11e2: 00 09 nop
11e4: 00 00 .word 0x0000
11e6: 38 2c add r2,r8
11e8: 00 00 .word 0x0000
11ea: 12 a8 mov.l r10,@(32,r2)
000011ec <_atexit>:
ずらずら出るファイルは、gccのデバッグ用であって、mdの全体デバッグ向きではないな。
mdの全体デバッグを行うのであれば、-daで出たファイルそれぞれからobjを作成し、diffを取りたい。
ただ、既に完成しているmdファイルがあって、それに付け加えていく方式なら問題ないから、
gccプロジェクトとしてはこれでいいんだろう。
ところで、インストールしたファイルにmdのような物が見あたらないのだが、
これって、mdはインタプリタ的実装ではなく、gcc内にビルトインされていて、
mdいじるたびにgcc再ビルドが必要ということ?
mdをいじることはほぼ無いから、gccの仕様としてはコンパイル速度優先でこれが正しいが、
これでは書き換えるたびにリビルドが必要となり、mdのデバッグなんてかなり無理。
全体ビルドは3時間くらいか?ごくごく一部のリビルドで終わることを祈るが、
cygwinだとforkが遅いからか、make install も時間がかかっていたから、cygwin環境では不向きだな。
gccのオプションも探してみたが、それっぽいのはなさそうだ。
そちらでは、どうやって試したの?何かいい方法知らない?
> 全体ビルドは3時間くらいか? 何が足ひっぱってんのか知らないけど時間かかりすぎ。 cygwinが足引っ張ってるなら適当に vmware なりなんなりの上で 適当に linux 環境を作ったら。 それに、この場合 coreパッケージだけのビルドでいいんだから 今時のマシンだと20分切るくらいなんでは。
ポイント?だけ ○ ビルド時にmdファイルからCソースのファイルに変換されてコンパイラ内部に取り込まれます ○ コンパイル時に-Wa,-L,-als=hoge.lstをつけなはれ ○ 時間節約したいのなら、ウニックス系上でやりましょう 印方面はカナディアンクロスコンパイルをやっているような ○ make -jコア数 ○ mdファイルはarch分けのためのほんの入り口 どこまでやりたいのかしらんけど、のんびりやったら 3時間なら、まだ可愛い方かもね、20世紀末に比べたら
>103 20分も掛かってなかった。 c,c++,libstdc++ を make -j3 で 5分 (PhenomII X3 720)。
106 :
774ワット発電中さん :2012/08/09(木) 03:49:10.00 ID:K215FKIn
cygwinねえ....今やアップルのマシンでVMwareフュージョン使って リナックスもWindowsも、まとめてアプリ作る時代だからねえ。 安くて高性能な最新PCなら、このやり方だよ。 もちろん、WindwosマシンでVMware使ってLinuxを 動かしても良いけど。 とにかく仮想マシンが常識だよ。
ずいぶん効率悪いのが常識なんだね。まあCygwinも論外だけど。
>>106 まだ、気がつかないで、生OS使ってる人が
結構いるから、あんまり教えない方がいい。
cygwinの遅さは異常。 どうしてもWinでやりたきゃMinGW使うべし。 普通はVMWarePlayerでいい。(無料だし)
4コアな64bitウニックス環境なら sh-elf-gccのビルドはこんなもん、ml/m2系のlibは作らんようにしてる real 48m16.160s user 33m45.101s sys 8m58.870s
>>105 ,110
情報ありがとう。
こちらも時間計測してみた。マシンはCore2DuoE8500。Cygwin上。
1つのコアは自分用に使いたいので、結局1個でのコンパイルとなる。
A. native 全部*stage3: 5時間かかってjavaでこける。orz
B. native c,c++: 4時間3分。
C. sh-elf c,c++: 4時間11分。※1
D. sh-elf c,c++(make直後にもう一度make(Makefileが流れるだけ)): 2分20秒。
E. sh-elf c,c++(mdファイルタイムスタンプ更新): 2分20秒。※2
F. sh-elf c,c++(mdファイル内容変更): 3分55秒。
G. sh-elf c,c++(--prefix変更したら、libを作り直させられた): 37分49秒。※3
H. sh-elf c,c++(make install): 12分35秒。
※1. pre-installedとなっていたので、最初とは違うかも。
※2. タイムスタンプの更新だけではリビルドしないのは何故か分からない。
※3 再コンパイルはlibgcc, newlib, libstdc++, libquadmath。
cygwinはWindowsにforkのシステムコールがないから、forkが致命的に遅い。
結果、シェルスクリプトが5〜10倍遅い。../configureが目で読める。
ただし、CPU動作自体は同速(のはず)なので、アプリ自体は遅くないはずなのだが、
偶にすごく遅い物があったりするので、普段はUnxUtilsを使っている。
VMはファイルのやりとりがめんどくさくてなあ。
ちょろっと使う分にはUnxUtilsやCygwinで満足してしまったのよ。
UNIXに移行すれば最速で3分55秒→1分35秒(上記F-D)になる可能性があるが、
ごりごりやる気はないから今回は許容範囲だ。
興味があったら比べてみてくれ。多分shが遅いだけだと思っている。
今見えている問題は、ビルド(F)ではなく、make install(H) が遅いことだ。
ただもっと大きい問題は、makeファイルの依存性記述が漏れているのではないかということだ。
Libは内部にパスが書かれているのか、md変更で作り直しを要求されるのだが、
これが毎回微妙にずれている。そして、make distclean やれといわれるんだが、
これはこれで最後はERRORで落ちるのが常。
何故かbinutilsはシンボリックリンクでは駄目で、再インストールしないと動かない。
ところがこれがエラーを吐かずに見た目は正常終了のため、
気づかずにmd改変してあれこれして、何やっても変化しないな、と勘違いした。
そして、その後mdファイルを元に戻しても前と同じファイルが出ない。
多分中途半端に作り直したlibが残っているんだと思う。
しょうがないから同じファイルが出るようになるまで戻るとして、
クリーンビルドが4時間かかるので、現在進行中。まあぼちぼちといったところだ。
多分上記のmd変更→--prefix変更が間違いで、
--prefix変更を先にやっておけば助かるのではないかと期待している。
>>104 >○ mdファイルはarch分けのためのほんの入り口
これはどうやらそうらしいね。ちょっとがっかりしている。
mdさえ何とかなれば、好き勝手に出来るのかと思っていた。
>どこまでやりたいのかしらんけど、のんびりやったら
以前mdを読もうとして意味不明すぎて諦めたから、
聞ける人がいる内に聞いておこうと思ってやや張り切りすぎた。
このペースではこちらも持たないので、ゆるりとやらせていただきます。
1週間に1度くらいでも見に来て回答もらえたらありがたいです。
とりあえずmdファイルの変更での差異がどのように発生するのかを観察しようと思っている。
ソースを作るのが面倒なので、これまたgccを流用だが、
これは構文解釈(string系)に偏っているかもしれない。
まんべんなく様々な処理が記述されているソースはないかなあ?
他には、4.7.1でバグに命中するソースとかお持ちの方があれば是非。
一部訂正
× SH2で遅延スロット無し条件分岐命令が追加されている(
>>86 )
○ SH2で遅延スロット"付き"条件分岐命令が追加されている
だから、遅延スロットに無条件分岐が置かれるケースは
BT/S, BF/Sがそもそも吐かれなければ発生しない。(m2が該当)
今さらっと見た感じでは、
m2では、RTSの遅延スロットにスタック復帰を入れてもらえない。m2aでは修正されている。
m2では、BT/S, BF/Sが出ない。m2aでは修正されている。
m2aで追加されたRTS/N(遅延スロット不要)だが、何故かnopが後続することが多い。
→で、mdを改変したら改善されたものの、戻しても元に戻らない、アレ?という状態。
見た目、m2aでずいぶん頑張っているように思う。その結果、バグが入ったのかも。
気にしてたのはこのパータンでしょ 0048 8B01 bf .L462 004a A101 bra .L476 004c 0009 nop 読みはあたってたみたいだね
>>113 のコードは
よーわからんけど、間違ってないような気がしてきた
こんなところでハマってたら、大事になってるわな
>>113 そのコード自体はおかしくはない。
ただ、bfがbf/sになったときにbraが遅延スロットに入ってしまう。
これを防ぐための記述がmdの中にないのが気になっていた。
(といってもmd全部見たわけではないし、理解不能の部分がまだ沢山ある)
これをSH1ではbf/sしかないと勘違いしていたため、SH1なら命中するはずと間違えた。(
>>81 )
訂正の言い方が分かりにくくて申し訳ない。
○ SH1はbt,bfしかないから問題ない。
△ -m2でもbt,bfしか吐かないため、とりあえず問題ないようだ。
? -m2aはbt/s, bf/sを吐くようになっているから、確認が必要。
ただ、今はソースがないので、elfをobjdump -dSして静的リンクされたstdioを見ているんだが、
これだとリテラルも命令扱いで逆アセンブルされるので、スクリプトで処理出来ない。
教えてくれた-Wa,-L,-als=hoge.lstはきちんと命令のみなので、こちらを使いたいが、
これには「自分の」ソースが必要。
とりあえず
>>97 で見つけた人のはダウンロード出来て、
バグにも命中しているということなので、これで試してみます。ぼちぼちと。
ところで、mdのタイムスタンプを更新したら、めちゃめちゃ文句言われるんだが、、、
まあそれでも同じものを吐くのは確認済みです。
../../gcc/config/sh/sh.md:2292: '@' is redundant for output template with single alternative
../../gcc/config/sh/sh.md:2304: '@' is redundant for output template with single alternative
../../gcc/config/sh/sh.md:1300: warning: source missing a mode?
../../gcc/config/sh/sh.md:1313: warning: source missing a mode?
../../gcc/config/sh/sh.md:7228: warning: source missing a mode?
../../gcc/config/sh/sh.md:9414: warning: source missing a mode?
../../gcc/config/sh/sh.md:9429: warning: source missing a mode?
../../gcc/config/sh/sh.md:11334: warning: source missing a mode?
../../gcc/config/sh/sh.md:7228: warning: source missing a mode?
../../gcc/config/sh/sh.md:11482: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11482: warning: destination operand 0 allows non-lvalue
../../gcc/config/sh/sh.md:11482: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11482: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11482: warning: destination operand 0 allows non-lvalue
../../gcc/config/sh/sh.md:11482: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11482: warning: source missing a mode?
../../gcc/config/sh/sh.md:11482: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11482: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11499: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11499: warning: destination operand 0 allows non-lvalue
../../gcc/config/sh/sh.md:11499: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11499: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11499: warning: destination operand 0 allows non-lvalue
../../gcc/config/sh/sh.md:11499: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11499: warning: source missing a mode?
../../gcc/config/sh/sh.md:11499: warning: constraints not supported in define_peephole2
../../gcc/config/sh/sh.md:11499: warning: constraints not supported in define_peephole2
>>115 libgcc/Makefile.in
INTERNAL_CFLAGS += -Wa,-L,-als=$*.lst
を適当なとこに追加しなはれ
libstdc++v3の方は自分で考えてみましょう
mdはミスするとエラーで止まるから
何がミスってるのか、意味不明な時があるので
こういう情報はあんまり書きたくないんだけどね、ほんとは
割り込み処理のテストはこれが使える? gcc/testsuite/gcc.target/sh/rte-delay-slot.c
>>116 ありがとう。libgccの方もその手でリストを見えるということですね。了解です。
まあちょっとペースダウンします。
ちなみに
>>97 の方はダウンロードしてmakeは通った。で、タイマー割り込みの部分だが、
見た目、直っているっぽい。gccは4.7.1。
1c0011fc <_INT_CMT0_CMI0>:
1c0011fc: 4f 62 sts.l fpscr,@-r15
1c0011fe: d1 12 mov.l 1c001248 <_0x40001>,r1 ! 40001
1c001200: 41 6a lds r1,fpscr
1c001202: ff 0b fmov fr0,@-r15
1c001204: ff 1b fmov fr1,@-r15
1c001206: ff 2b fmov fr2,@-r15
1c001208: ff 3b fmov fr3,@-r15
1c00120a: ff 4b fmov fr4,@-r15
1c00120c: ff 5b fmov fr5,@-r15
1c00120e: ff 6b fmov fr6,@-r15
1c001210: ff 7b fmov fr7,@-r15
1c001212: ff 8b fmov fr8,@-r15
1c001214: ff 9b fmov fr9,@-r15
1c001216: ff ab fmov fr10,@-r15
1c001218: ff bb fmov fr11,@-r15
1c00121a: 4f 52 sts.l fpul,@-r15
1c00121c: d1 09 mov.l 1c001244 <_1int_cmt_cmi0>,r1 ! 1c00dad4 <_int_cmt_cmi0>
1c00121e: 41 4b jsr/n @r1
1c001220: 4f 56 lds.l @r15+,fpul
1c001222: fb f9 fmov @r15+,fr11
1c001224: fa f9 fmov @r15+,fr10
1c001226: f9 f9 fmov @r15+,fr9
1c001228: f8 f9 fmov @r15+,fr8
1c00122a: f7 f9 fmov @r15+,fr7
1c00122c: f6 f9 fmov @r15+,fr6
1c00122e: f5 f9 fmov @r15+,fr5
1c001230: f4 f9 fmov @r15+,fr4
1c001232: f3 f9 fmov @r15+,fr3
1c001234: f2 f9 fmov @r15+,fr2
1c001236: f1 f9 fmov @r15+,fr1
1c001238: f0 f9 fmov @r15+,fr0
1c00123a: 4f 66 lds.l @r15+,fpscr
1c00123c: 00 5b resbank
1c00123e: 00 2b rte
1c001240: 00 09 nop
1c001242: 00 09 nop
r1の退避をしてないように見えるが、レジスタバンクを使うのであれば要らないから。
なお、ソースはmdの576-582行をコメントアウトした版で-m2aで有意差を確認。
ここまでこれれば後はトライ&エラーでも地道に進める。色々ありがとう。
>>117 すまんが、割り込みソースがさくっと手にはいるとは思っていなかったので、
550-559廃止版はまた後日。とりあえずこちらのを見る限りは、問題なさそうだ。
と言っても、RESBANKを使えばこのおきまりのパターンしか無いので、
バグるはずもないのだが。
>>119 へー、これも何げに直してあるみたいだね
若松に がじぇルネ買いに行ったら売り切れてた。 思ったより売れてるんだね。
まあArduinoの高性能版だと思えば安いからなwww
ホントですね。 裸のほう注文した。 ついでにXBEEも。
125 :
774ワット発電中さん :2012/08/15(水) 21:47:11.65 ID:FquzvU0F
>FULLじゃない方が超おトク!! 500円が「超」になっちゃったり、 >mbedより安くて、3000円以下ならほしい。 だって。嫌だねぇ。
>>126 >>FULLじゃない方が超おトク!!
>500円が「超」になっちゃったり、
プ)510円なのにw
128 :
774ワット発電中さん :2012/08/16(木) 16:28:19.69 ID:FzBcTM66
>>123 うーん、手間をかんがえたらお得とは思えないけど…
それ言っちゃうと趣味の電子工作が成り立たないから。
>プ)510円なのにw >127自身が笑われるって気付いいないんだろうなぁ。 そんな貧乏人には電子工作なんて向いてないわな
>>131 小学生の算数も分からないの誤魔化すのに必死杉w もう見てらんないww
>>132 自分の小学生並の頭を披露しなくてもいいのに。
「なんじなんぷんなんびょ〜」なんて言っちゃう類?
>>133 小学生並>>>>>>|超えられない壁|>>>>>>小学生の算数も分からない131
不等号を並べ立てる奴は大抵幼稚園児並みの知性しか持っていない
越えられない壁の絶対値ってどういう意味?
>>136 「不等号を並べ立てる」のは学校では習わない。
>>139 学校で習うことが知識の全てって人ですか?
学習指導要領を出してきたキチガイが何を言ってるんですか?
貧乏人ばかり集まると、幼稚園児並みの争いをし始めるんだね。
ケンカは同じレベル同士の間でしかおこらないw
バカが遊ばれてるだけ
妙なことやってる間に、shのgccは改良されていくのでした。
がじぇルネ買ってしまった(個人で)。 いちおう仕事で使うCPUの選択に影響力のある立場だけど、SH/R8C/H8を ぜんぶお払い箱にして、一気にRXに乗り換えるよう指示を出そう。
>>147 SHとR8CとH8を特性で使い分けしてたんなら、RXに一本化は無理なんじゃない?
やっと若松から がじぇルネ届いた。 8日もかかるとは近頃の通販にしては激遅。 でも ピンクの基板はガジェットぽくていいな。
>>147 がじぇルネってライセンス的に製品に使ってもいい感じです?
がじぇるねって言うよりも、ブートローダですけど
ブートローダってあのディスクに見える初期ファームのこと? あんなの製品に使わんでしょ。CubeSuite+でビルドして書き込むでしょ。 ただこの初期ファームはよくできている。ちかちかLEDまでたどりつけかった 初心者の多くが、山を越えられるだろう。 小口やアマチュアに冷たかったルネサスと思えない。つぶれかけて目覚めた?
がじぇルネは電源ONでユーザプログラムが走って、リセットスイッチ押下で USBディスクになるのがちょっと不思議だったけど、RX63Nはリセットの原因が レジスタで判るんだな。 この大きさの基板に機能てんこ盛りなのはすごい。E1エミュレータ用パターン まである。価格も安いし、仕事で使う業者が続出しそう。
USBディスクにFWを置くってすごく良い気がする 中国人用の書込みjig用意したり、だらだら長くて写真べたべたの手順書を作らなくて済む
>>153 ファームウェア書き込み→ビルドしたオブジェクトをUSBディスクにコピー
ってデザインはすばらしい。パソコンしか知らない初心者に判りやすい。
ルネサスのオリジナルなアイデアなんだろうか。
今時普通ですが
NXPのLPC13xxとかが昔からそうなってる
>>155 >>156 そうなんですか。知りませんでした。
市販のCPU基板といえば、国産の産業用ボードしか使ったことがないもので。
国産品でそんなサービス満点ファームが入っている基板は見たことない。
潰れそうな会社の御為に工作員ですか、乙であります。
mbedとaruduinoの初心者受けしそうなところの丸パクリというところがいいんだと思いますが。 コアもARMにしてくれれば尚可。
>国産品でそんなサービス満点ファームが入っている基板は見たことない。 基板がどうとかじゃなくて、CPU自体にブートローダが入ってたりでな。
162 :
sage :2012/08/26(日) 15:00:26.37 ID:yjy2KDRZ
すいません素人です。RL78/G13のUSB接続のボードで遊んでます。 CubeSuite+はマイコンの型番を後から変えれないみたいなんですが、 後でROM/RAMのサイズが大きくなった場合、 とりあえずは、小さいROM/RAMのマイコン用のプログラムをダウンロードしても 動くと思ってよいでしょうか。 アドレスで使わない部分が多いだけなので、問題ないのかな、と。
動くことも、ある。
ビルドして作られるのはMOTファイルで、アドレスとデータ以外の情報は 含まれてないんだから、問題ないんでないの? 割り込みとか周辺I/Oとか完全互換なら。
165 :
162 :2012/08/28(火) 12:02:25.03 ID:o5//qM5A
ありがとうございます。納得です。 そうなってしまったら、とりあえずやってみます。
166 :
774ワット発電中さん :2012/08/29(水) 11:09:34.39 ID:J64mszO1
東証 ルネサス株 売買停止
これは米ファンドの投資のうわさが流れたからで、悪いニュースでは ないだろ。 しかし天下のルネサスの経営権がたった1000億で買えるってのも 諸行無常だな。
>>167 あいや〜 古巣が・・・ たった1000億 orz 武蔵の回路設計ではお世話になりんすた!
今はARMシステム開発で大忙しだけど・・・
> ルネサス株、一時ストップ高 米ファンドの出資検討を好感 ハゲタカのおもちゃになってるだけじゃねえか
170 :
162 :2012/08/29(水) 21:22:37.08 ID:Y/PSQguR
1000億円 安い! 誰も要らなかったってことか結局!
171 :
162 :2012/08/29(水) 21:24:00.09 ID:Y/PSQguR
まだ間に合うからRL78採用やめようかな!
株価が上がってるのは 多くの専門家が 今より会社が安定的な方向に行くと予想されているということだよ。 ユーザーにとっては歓迎できる話。
173 :
774ワット発電中さん :2012/08/30(木) 13:39:29.74 ID:qSf0jwyp
>>171 うちはRXに乗り換え予定なんだけど、ルネサスが心配だから
dsPICはどうかと会議で言ったら、部下連中に「英語は嫌だ」と
言われてしまった。
けれども外資ファンドに買収されたら、これまでと同じ企業運営って
訳にはいかないだろうな。
日本でしか売れないんだからどこの資本が入ったって日本語マニュアルが基本でしょ 別に英語マニュアルでもテクニカルターム拾い読みで大体分かるから問題ないけど
PICの場合英語云々よりエラッタが洒落にならん場合があるよ
>>178 そのランキングは注文数量に関わらず、1注文1点でカウントした
結果じゃなかったっけ?
32ビットのトップなんて>178が「!??」となるような結果になっている
ところからも、>178がイメージする”売れ筋”というのとはちょっと違う
性質のリストになってると思うよ。
>>179 Digi-Keyの1注文1点で集計は、CPU国際ファン投票としては有効だろ。
それにルネサスCPUが一機種も入っていないってのは俺は驚いたけど。
あなたの言うとおりPropellerが一位ってのも驚いた。ひょっとして日本の
組み込み屋は、マルチプロセッサの使いこなしに世界で遅れてるのか。
>>180 ルネサスは社内に別々の三社があるみたいなものだから、シェアが大きいって
のはあたりまえでないの。
合併しても機種を整理できなかったことのほうが問題と思う。
ルネ内部って、どこぞから出向だとか 肩書きで序列が左右されるやり取りがあるんだろうな そんな環境でまともな製品なんて作れるはずもない
ルネの意思決定速度はありえないくらい遅いらしい チンタラやってるうちの会社の意思決定速度が速いとか驚いてるんだから 何年もかけて議論のための議論をやってるんじゃねーのかな
3社寄せ集めで、それぞれの親会社のご意向だのバランスにも配慮しないと いけないのも問題なんだろうね。 そのあたりのしがらみを一気に断ち切れる千載一遇のチャンスなんじゃない?
しがらみより先に今までの製品を殺すという手順はいかがなものかと
旧会社の製品を整理せず工場丸抱えだったのが、今の状態の原因だから…
整理するにしろ、次の土台をしっかり作らずにやっちゃったのは良い選択とは思えなかったな ARMとか他の土台に乗ったほうがって考えちゃう
PICだけ触ったこと無いんだが、AVRが一番使いやすいでしょ。
ARMはarchと周辺の組み合わせに癖があるのがちょっと 国産CPUは癖がない方かな 国産マンセーしてるわけじゃないけどね
>>187 >>189 ARMはコアと周辺が別だから組み込み用は簡単に他社製品に乗り換えられないしねえ
Cortex-M3はまあいいけど、じゃあ良い新アーキテクチャ出してるかって言われれば疑問なんだよねえ。
俺は国産マンセーを進んでやるようなタイプの人間だったんだが、ルネサスになってから挙げる手も力が入らなくなってきた 来年はどうなってるんだろう
>>191 いやARMで東芝とかも国産作ってるぞw
armの会社はファブレスだから契約すれば、どこでも作れるでしょ armのarchに合わせて、実装するときにハマらないように 周辺機能をどう作りこむかが鍵 アプリレベルの人には関係ないことだろうけどね
>>190 ココがいよいよって時には、Cortex-M3あたりにするしかないんだが、
オレが思うに、armには組み込みのソフトを本格的に理解してるやつがいない。
SHやRXはわがままな顧客に叩かれて、馬鹿が使ってもあまり不具合が表面化しないようにうまく出来てる。
>>194 >SHやRXはわがままな顧客に叩かれて、馬鹿が使ってもあまり不具合が表面化しないようにうまく出来てる
kwsk
>>194 どうなんだろう?
コアが別設計だと、EMSとか弱いんじゃないのかなって不安はあるね
あと個人的にはARM系は周辺用レジスタに容量食いすぎなのがイヤ
ARMを何個か乗っけたSHという組み込み心をくすぐられる物もあったような
>>193 ARMをファブレスとは言わない。
IP売ってるだけじゃん。
IPって言葉を知ってる自慢か?
TCP/IP
>>195 「1を読んだ後で0を書込む事でクリアされます」とか
ポート方向レジスタの中で、PD9だけがなぜかプロテクト対象だとか
この辺は車屋に言われてやってんだろうな
車屋とJRはうっせーからな
プログラムが暴走したとき、ポート書き換わるとエラいことになるんすよ いや、うちはプログラムはちゃんと作るんですけどね ほらあれ、違法無線ですか、アレがねえ… 初期のAT車で急発進が問題になったときのがソレだっけね?
だって数100Wアマ無線機をマイコンに直付しても暴走しないこと なんて試験項目があるんだもんな・・・車屋の手先としては泣く泣く ルネに変態仕様を盛り込んでもらうしかない。
俺が小学生のころのNHK番組で、車載マイコンにEMCを飛ばすと ブレーキが効かなくなって車が暴走する実験とかあった。 かなり反響があったみたい。
RL78のマニュアルで、フラッシュのセルフプログラムについては別の資料を見ろ ということだったので代理店に問い合わせたら、 フラッシュ・セルフ・プログラミング・ライブラリ Type01 と フラッシュ・データ・ライブラリ Type04 というのを送ってくれたのだけど番号が飛んでる、Type02、Type03というもの はあるんだろうか。何だか気になる。
>>203 ,204
参考になる。そういう事なのね
そんな環境だとFPGAなんて簡単にコンフィグ飛びそうだな…
ぶっちゃけがじぇるねはmbedの劣化コピー。 手軽さが売りのフィジカルコンピューティングの筈なのに、 クラウド環境とライブラリが糞だから、足回りを組むのとあまり変わらないという。 値段なら秋月のPIC32、手軽さならmbed、就活等ガチで勝負ならSTM32、平成生まれのゆとりならArduino がじぇるねは中途半端の臼のろまも良いところw
USB仮想シリアルのドライバが公式に無い時点がもうねw (コミュニティで特電のドライバを捜さないとダメ)
>値段なら秋月のPIC32、手軽さならmbed、就活等ガチで勝負ならSTM32、平成生まれのゆとりならArduino つまり、がじぇるねが一番バランスが良いってことか。なるほどね。
>>204 それ、マイコンだけでは回避できんのでは?
外部回路もパッケージも、そりゃ対策はするだろうけど、それでも何か出るかもしれないわけで 最悪の事態のときに、外部に影響ない状態を保持してくれて、きちんと暴走判定でリブートして、 リブートであると判断できて、対策込みの初期化ができる、そんな保護を1つ、 密度を下げるとかナニカしらで、インパルスに影響されにくい機構にして埋めてくれると、ものすごく助かっちゃう。 そんな話かしらね?
RX63Nにはその手の機能がたくさん追加されてるな あちこちのレジスタがプロテクトだらけだし メモリプロテクトがついて、独立型WDTにリセット要因判定と
またメイドか。しかも同じ人。 同じネタを2度も3度もやったら飽きるわな。 キモい
なんか事情あんじゃねぇの?関係者の愛人とかさあ。
秋葉オタクには面白いのかもしれんが、 萌えとかどうでもいい俺はいい加減引き気味。 メイドの顔も3度までというし。取引先がどう思うかだよな。
そんなにニコ厨とキモヲタにでも売りたいのだろうか。 まぁ、ルネサス自身がはちゅねを採用したりしてキモヲタに媚びているしねw これだから電子工作が気持ち悪いとか言われるんだよw ロボコン関係者はイメージダウンを避けるために、 こんなキモオタに媚びたボードは使わない方が良い。 (高専ロボコンはレベル高いから、こんなゆとりボードはスルーして普通にFPGAのコアやCortex、組み込みLinuxだろうけどw)
>>219 ロボコンでFPGA使う用途ってなんかある?
組み込みLinuxも無駄にリソース消費するだけじゃないかなあ?
こんなキモいコテハンには言われたくないものだな
学生の学習目的なんだから実際の売り物に近い構成にするのはセンセイとしては間違いではない
ロボコンのロボットみたいな製品を実際の売り物として作るとして、FPGAなんて使うかね?
なにを言ってるんだ 売り物は、学生本人だ。
>>222 「学生の学習目的なんだから実際の売り物に近い構成にするのはセンセイとしては間違いではない」
↓
「学生の学習目的なんだから実際の学生本人に近い構成にするのはセンセイとしては間違いではない」
意味分からん。
>>204 >数100Wアマ無線機をマイコンに直付しても暴走しないこと
200Wのアマ無線機の中には、車載用ではなく一般用のマイコンが普通に使われていたぞ。
>>225 え?まじでわからないの?
わからないふりしてるの?
まあふりなんだろうな、なんの意味があるかはわからないけど
このスレ定期的に臭くなるNE!
無線機の中は影響受けんようになってるだけでしょ
>>219 おまえ、組込みの世界で
>FPGAのコアやCortex、組み込みLinux
がレベル高いと思ってるんだw
コテハンにはカスしかいないっての、どこの板でも一緒なんだな
がじぇルネの初期ファームがmbedのコピーなのはそうなんだろうけど 初期のまま使い続けてる奴なんていないだろ。 俺は私物のがじぇルネを机の端に置いて、暇なときちょこっとCubeSuite+で ファーム書いてる。なかなかかわいいぞ。女子ソフト屋にも人気だ。
>>234 >初期のまま使い続けてる奴なんていないだろ。
やー、いっぱいいるでしょ。
ルネサスナイト()覗かせてもらったけど、JTAGコネクタ付けてる人のほうが稀だったよ。
sh2で、8ビットのMSB/LSB反転やらないといけないんだけど、 できるだけ速いのは、どうやればいいでしょうか? 普通にcで<<と>>でやったら、i2cで送ってくるデータに間に合いませんでした。 インラインアセンブラ使うと速い?
>>236 テーブル用意すりゃいいじゃん。256バイトで済むし。
typedef unsigned char BYTE;
BYTE reverse(BYTE byte)
{
static const BYTE tbl[] = {
0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10…
};
return tbl[byte];
}
>>237 なるほど。
そりゃ速そうです。ありがとう。
rotcl rn rotcr rm これ8回でいいんでないかい
いろいろ考えちゃうけど、結局
>>237 が一番いいんだよな
256バイトなんてないも同然だし
それでもケチりたかったら4ビットずつに分ければいいし
ところで、
>>237 のテーブルって関数内に書いてもROMに配置される?
どのコンパイラだったか覚えてないけど、いちいちスタックにおいて初期化する
コードが出てきた事がある
constついてればHEWなら大丈夫
おっと、HEWって書くとHEWで使ってる純正以外のコンパイラも入っちゃうから、ルネ純正に訂正
M32C用コンパイラではスタックに置いて初期化するコードが出てきた ローカル変数はスタックに置くというルールが優先するらしい
>>244 static 宣言されてる変数をスタックに置くの? それちょっとおかしい気がする。
staticはつけてないよ だからか
ズデっ もうヤダこいつ
もともとconstって宣言は「代入禁止」って意味。だからローカルでも グローバルでもstaticでもconst宣言していい。 それをマイコンのコンパイラ屋さんがいろいろ工夫して、ローカルでない 変数にconst宣言するとROM領域に変数を確保するという仕様が いまでは標準みたいになってる。
だから
>>237 のコードからconstをはずすと、たぶんRAM領域に変数が
確保されて、リセット直後に初期値を代入するようなコードが出るはず。
HEWのSH2ではそう。(昔ひっかかったので覚えてる。)
すべてのマイコン用コンパイラでそうかどうかは知らない。
staticっていうのは盲点だった… 条件反射的にconst→ROMに配置って考えてたけど、 確かに「ずっと残す」っていう意味では必要な指定か 関数内staticって実行中の初期化がし難いからあまり使わないんだよね
>248-249 有名どころではAVRがそうなってない。const付けてもRAMに置く。arduinoも同じはず。 ROM・RAMを同一空間に置いてある奴でconstでROMに行かない奴は無いだろうけど 異なるアドレス空間にある奴はコンパイラ毎に確認しないとだめだと思う。
>staticっていうのは盲点だった… subutaなら知ってる このメ subuta が!
>>251 それはAVRが特殊なんじゃないの?ROM専用命令があって遅い。
納期無い上、初AVRだった仕事の時は泣いたわw
255 :
774ワット発電中さん :2012/09/14(金) 22:24:07.12 ID:S/h6aRdA
専用命令でしか読めないんだから呪文つきのポインタを備えていなけりゃムリだわな
const宣言でROMにマップされるかどうかは、リンカ(スクリプト)次第。 セグメント配置はコンパイラの仕事ではない。 x86用アセンブラのMASMに付属のLINK.EXEは、もともとDOS用のEXEファイル (RAMへロードされる)の作成が目的でROM化を想定していない。 なので、MASMやMSCで書いたコードをROM化する組込用開発環境に使うため にライフボートからLINKと互換性のあるROM化可能なリンカが出ていた。
>>257 >x86用アセンブラのMASMに付属のLINK.EXEは、もともとDOS用のEXEファイル
>(RAMへロードされる)の作成が目的でROM化を想定していない。
>
>なので、MASMやMSCで書いたコードをROM化する組込用開発環境に使うため
>にライフボートからLINKと互換性のあるROM化可能なリンカが出ていた。
なんでx86の話なんかしてんの?
>なんでx86の話なんかしてんの? わからないよねぇ。なんでいきなり?って感じで。 しかも、その当時でも、constがどちらに置かれるのかはコンパイラと メモリモデルに依存することだし。
> ROM化可能なリンカ じゃなくて、もともとリンカにある再配置機能とかのことでしょ 20世紀末には標準装備されてたし、ワンチップマイコンって言われてた奴のC言語系の開発ツールだと 当時はリンカスクリプトって何、状態の人がいっぱいいたからね
4日前の話題に、しかもx86の話で超上から目線とか、どこのキチガイだよw あー、ここに常駐してるキチガイGGか
また、無能自慢してる奴がいるよ
まだやってんのか。 きっと、LOC86の存在なんて知らないんだろうな。
>>263 なんでルネサス製品でもない8086用のツールの話なんかしてんの?
キチガイだから
x86しか知らないくせに自慢したい低能だから
>>257 >セグメント配置はコンパイラの仕事ではない。
GNURL78 v12.02 でコンパイルしてみたけど、初期値付き大域変数は .data に割り当てられて、
定数は .section .rodata に割り当てられたぞ? コンパイラの仕事ではないって? 何が??
test.c:
int foo = 0x1234;
const int bar = 0x2345;
rl78-elf-gcc -S test.c
>267 非常にうるさいこというと 自分でも貼ってるようにコンパイラがするのは section に割り当てることな。 その section をとりまとめてまた section にまとめたり 最終的に segment に変換するのがリンカの仕事で、 その segment を実際に RAM や ROM に張り付けるのがローダの仕事。 書き込みできない領域とかのフラグがあるのは segment のほう。 section は多分書き込みしてないよというフラグがあるほう。
マイコンのソフトばかり作っていると気づかないけど 古来コンピュータのプログラムはいちいちストレージから RAMに展開されて実行されるんだな。 グローバルやstatic変数の初期値は、その領域に割り当てられる RAM上に「DW xxxx」とかの形で確保され、プログラムと変わらず ダウンロードされRAMに値がセットされるはず。 マイコンではそれができないので、constならROM上に取るとか RAM上の変数ならRESET時に初期値を代入するコードが生成される とか必要になる。 おいらの出た大学の研究室には冷蔵庫サイズのミニコンがあって 電源を入れてハードウェアパネルをぱちぱちしてブートローダを 書き込み「HALT」解除するとOSが読み込まれて立ち上がった。 要するにROMなんてなかった。こんなのを毎日使ってた。
>>269 >古来コンピュータのプログラムはいちいちストレージから
>RAMに展開されて実行されるんだな。
ストアドプログラム方式が全てではない。
271 :
774ワット発電中さん :2012/09/21(金) 19:45:46.33 ID:502TQMxC
>>269 古いコンピュータだとメモリがコアメモリの奴もある。これだと不揮発だから
いちいちプログラムを読み込む必要はない。国産のミニコン、ミニコンっていう時点で
大昔だがコアメモリの機種もあった。
爺さんの思い出話などどうでもいい。 話も人も役に立たない。
外部でないconstなら、 コンパイラが即値叩き込んでくれればいいのに、 コンパイラでぜんぜん違うね。 最適化オプションをつけても、たった数行前に初期化コードのある、 staticでないconstをRAMに確保するRL78コンパイラは、どうなのーー(泣。
274 :
774ワット発電中さん :2012/09/22(土) 06:12:38.20 ID:qV7g93+Q
あれの組んでるSHのプログラムでは、フラッシュROM上で実行させず いったんRAMに読み込んでから実行してるけどな。 フラッシュROMを 書き換えるのに便利だ。
275 :
774ワット発電中さん :2012/09/22(土) 13:11:56.39 ID:OBjTYFLc
>>273 RL78はROMデータのアクセスが遅いから、速度を考えるとリーズナブルだろう。
データシートは見てないが、RAMなら1クロックだがROMだと3,4クロックだと思った。
LPC1114とかPIC32とかの32ビットCPUも値段が安くなってきたし、こんな使いにくい
CPUを新規に使う意味があるのかという気はしてくるな。
RL78は1年で800品種とか言っていたが、もう2千以上はあるんじゃないの。結構
古くて品種が多いPICでも1000はないらしい。ルネサスに限らないが日本のメーカーの
品種の多さは病気としか思えん。
>>275 ルネサスはMicrochipと比べて従業員数が1桁多いんだから
やらせる仕事を何か作らないといけない。
日本メーカの構造的な問題だな。
何年か前に、ルネと日本の電気メーカ各社が集まって、FOMA用チップセットを作ったけど、 売れなかったんかね?作るだけ作って全くシェアとれず、Qualcommの賀状を崩せず終了? あれが売れてれば状況は随分違ったと思うけどな。
>>275 いや、そうじゃなくって、純正コンパイラの最適化がしょぼいって話ね。
即値で命令に埋め込んでくれれば、1クロックでしょ。
const uint8_t a = 1;
const uint8_t b = 2;
uint8_t c = a + b;
cには計算済みの3を代入すればいいでしょ。RAM確保する必要もなし
>>275 RL78は、大量生産向けだから、1円安いだけでも、
かなり有利になる用途もあるし、供給能力も選択基準に影響する。
外付け部品少ないとか、低消費電力ってメリットもあるし。
RL78は、順調なんじゃないかね、心配はRXの方で。
>>280 >cには計算済みの3を代入すればいいでしょ。RAM確保する必要もなし
C言語で、関数外で a〜c の宣言をしてるなら、static でないのだから a〜c はメモリに割り当てる以外ない。
メモリに割り当てられたくないなら #define を使うべき。
283 :
774ワット発電中さん :2012/09/22(土) 20:56:45.14 ID:OBjTYFLc
>>281 それが日本のメーカーの弱さにつながっている気がするんだけど。
1円でも安くって、安いCPUでROMやRAMをけちって、結果ソフトの開発コストが
アップし信頼性の低下をまねく。外注しているし、ソフトは変えられるからといって、
どうでも良い仕様をてんこ盛りにする。しかも、安上がりにするために、短納期を要求する。
1円削ったところで韓国、中国には絶対にかなわない。その考え方の延長に日本の未来はない。
早く安くで戦えた時代は終わったと思いませんか?
>>282 273で「外部でないconst」って言ってるでしょ。
さらに、#define使いたくないからconst使ってんだけど。
型チェックないし、関数内だけ有効な名前にならないし。
ま、ともかく、関数内でconstにしてもRAMに割り付けるくらい
コンパイラがダメなんだよ。文句ばっかですんませんね
>>284 >型チェックないし、
#define a ((uint8_t)1)
#define b ((uint8_t)2)
>関数内だけ有効な名前にならないし。
関数の終わりで#undefすれ。
AVRの古いgcc(3.4.6)ではstaticなしconstは即値に変換されたけど コンパイラのバグなんじゃないの
つーかconstの定数伝播て最適化オプションなくても普通やるでしょ 1passの簡易コンパイラでもない限り
>>283 そういう面では別にコケてないんじゃないの。
家電が壊滅的と言っても、RL78使うような白物や空調はほとんど無傷だし。
携帯やAV機器は、もっと政治的な部分で追込まれちゃったよね。
マイコンについては、まだコストでも中韓と戦えてるでしょ。
290 :
774ワット発電中さん :2012/09/23(日) 00:49:32.66 ID:PbRmIdw0
>>288 国内だけわね。国内需要だけで良いのなら、それでもいいけど。
いずれ、生産拠点は海外に移る。そうすれば、海外のCPUを
優先して購入するということは考えられると思うが。
>>289 日本の企業のやり方は、今も昔もかわってないと思ったが。
今の時代のやり方を知っているのなら、聞かせてほしいもんだ。
そうでないと、たんなる知ったかぶりでしかないぞ。
292 :
774ワット発電中さん :2012/09/23(日) 01:28:13.33 ID:PbRmIdw0
>>291 1行しか文を書けない奴は散ってくれないかな。間違っているなら
間違っていると指摘されるのは一向に構わんが。
文句やいちゃもんがあるなら、ちゃんと反論しろってこと。
・0.1秒毎にADを動かした場合に、最も消費電力が少ないマイコンを探しています。 ・ADは32k程度の低速クロックで動けばOK ・今のところ、RL78のSNOOZEモードか、MSP430を寝せて起こして使うかのどちらかがよさそうな気がしてます。 0.1秒周期のAD変換で消費電力が最も少ないマイコンって何でしょうか? 用途は充放電のある二次電池(NiMH)で動く回路の電池電圧によって、マイコンの処理をいろいろ変えようとしてます。 コンパレータでやってもいいけど、より柔軟なAD値で判定したい。 電池電圧モニタしている時間と、AD変換後の処理の時間では電池モニタの時間が圧倒的に長いため、AD変換後処理の消費電力は無視してます。
簡単に「最も」なんて言ってくれるもんだね。 仕事なら自分で探せ。趣味ならどれを使っても大差ないから適当に選べ
296 :
774ワット発電中さん :2012/09/23(日) 09:46:41.86 ID:PbRmIdw0
>>295 いつの時代の話とか言ってくれてたから、今の話を書いてくれてるのかと思ったら。
知ったかぶりして、結局役にもたたないことを書くだけか。
>>295 は2行だってだけか。
ルネの営業に聞いた方がいいんじゃないかな ここで、同じような用途で最小電力の石がどれか調べた奴なんて多分いないだろうし わざわざ調べてくれる神もいないだろうから おまけにこの態度じゃ知ってても教えてやらねってなるだろ
そんな銭にもならないようなものをわざわざ調べるわけはないし、 (つか、そもそもどうやって調べるのかってことにもなるが) あるものがかなり消費電力が少ないと分かっていても、それが 全品種の中で最小なのかどうかなんて知らんわな。 仕事でやってるなら、こんな便所の落書き場に頼ろうっていう 神経がどうかしてるしな。シナ人や半島人じゃあるまいに。
>>285 わかってますよ。そんなの使いたくないって意味ですよ。
>>286 >>287 下のコードに対して
int func(int e) {
const int c = 5;
const int d = 6;
return c + d + e;
}
純正コンパイラ CA78K0R V.1.40 の吐き出すコードは、
速度優先(-qx1)でもサイズ優先(-qx3)でも同じで、
_func:
PUSH HL
PUSH AX
SUBW SP,#4H
MOVW HL,SP
MOVW AX,#5H
MOVW [HL+2H],AX
MOV X,#9H
MOVW [HL],AX
MOVW AX,[HL+2H]
ADDW AX,[HL+0H]
ADDW AX,[HL+4H]
MOVW BC,AX
ADDW SP,#6H
POP HL
RET
定数伝播とは関係ないけど、d = 9 のところだけは、すこーしがんばったように見える。
unsigned char にすると、代入がAXを介さずにスッキリするけど、定数伝播は同レベル。
結局、IARのコンパイラ買えってことかな。C++にもなるし。
コンパイラの最適化のレベルは各社各様にあるのはやむを得ないし、基本的には価格の高い製品の方が 品質や最適化の程度が高くなる。例外もあるだろうが。 本当の意味で最適化が必要ならアセンブラで書くべきだし、僅か数行で済むマクロの記述を使いたくない なら、他のCPUを使えば良いだけじゃないのか? そのCPUにも細部で気に入らない部分があるだけじゃないのか? 全てに最適な開発環境なんてある筈が無い。みんな妥協して使っている。
>>299 >定数伝播とは関係ないけど、d = 9 のところだけは、すこーしがんばったように見える。
d = 6だろ。INCW AX になったぞ。
>>300 そうですよ。その通り。
もったいないね、という話。
コンパイラのコンパイラがある時代に、
命令セットとは無関係の部分が(中間コードの段階で処理できる内容)
プロセッサごとにそんなに変わるかなと……まぁいいや。
>>301 すいません、d = 9 が正解です。
最初 d = 6 だったんですが、
アセンブラがINCWになると、例としては分かりにくいかなと思って、
d = 9 に変えたんですが、Cの方を差し替えるの忘れまして。。
ごめんなさい。
そういう最適化は人間がやってやるというのがCだったんだけどね。
304 :
774ワット発電中さん :2012/09/23(日) 19:29:30.32 ID:PbRmIdw0
>>303 それこそ、いつの時代のこと言ってんだ、だね。
初期のCコンパイラを使ってた人は、アセンブラのソースを読むことが
多かったから、相当すごいというか、あぶないテクニックもあったようだが。
Cコンパイラの最適化はメーカー次第だからな。実際に経験したのは
CASE文の判定を必ずif判定のコードに落とすのがあった。ルネサスじゃないが。
テーブル・ジャンプを使いたいところだったが、発注元のコーディング規約で禁止されて
いたので、素直にcase 文を使ったけどね。
>>302 まあ、ご不満はわかるけども、このクラスのCPUでは、
あまりガチガチの最適化を要求する大口顧客がいないんじゃないかな。
一行修正するのに、上司のハンコを10個もらって、一週間は検査で出荷延期なんて世界だから。
一定したコードが生成されることの方が優先されて、最適化なんて全然使わない客ばかりでは。
変な動きが最適化を切ったら無くなったってのまれにあるからな…
挙動が変わるんなら最適化のバグだろう。
>>307 まあ、その可能性もあるんだが、バグ自体はソースにあって、
最適化の影響で、顕在化したり、潜在化したりするって方が多いよ。
ソースがバグってても潜在化したままなら、製品としてはセーフなんで、
組み込み屋にはアンチ最適化な人が多い。
>>308 >ソースがバグってても潜在化したままなら、製品としてはセーフなんで、
コンパイラの出力を100%把握でもしてない限りセーフなわけないじゃん。
>組み込み屋にはアンチ最適化な人が多い。
そんなレベルの素人が多い業界なのか?
組込みといっても自動車からおもちゃまでいろいろだからな
自動車で
>>308 はNGかもしれんが、おもちゃならかまわんだろ
組み込みはプログラムだけじゃないからね
広く浅くっていう人が多いよ
311 :
774ワット発電中さん :2012/09/23(日) 21:04:43.54 ID:PbRmIdw0
>>309 最適化しないとでないようなバグは、メモリのどっかを壊している
場合なんだと思うが、これを探すのは至難の業。
そんなプログラムを作るなというかも知れないが、C言語のような
貧弱なメモリ管理でバグを防ぐのは、相当難しい。特にメモリを
ケチったシステムでは。
より管理が進んだC++を使った、しかもスキルが高いと思われる
マイクロソフトのアプリでもメモリ・リークがあった。
マイクロソフトも.Netでガーベージコレクションを使っているのは
人間が管理してメモリ関係のミスを防ぐのは難しいと考えたん
ではなかろうか。
>>311 >最適化しないとでないようなバグは、メモリのどっかを壊している
>場合なんだと思うが、
そんなの色々だろう。割り込みがらみの変数にvolatile忘れてるなんてのは多いと思うぞ。
>これを探すのは至難の業。
最適化する/しないで現象が確認できることがわかってるんだったら、ソースファイルや関数単位で
最適化の設定変えれば特定は用意だわ。メモリリークはまず関係ない話だな。
313 :
774ワット発電中さん :2012/09/23(日) 21:20:55.96 ID:PbRmIdw0
>>312 最適化は関係なしに発生する場合もあるしな。最適化しないとメモリに入らない場合もある。
最適化の場合としても、2万ラインで関数が数千くらいだと、特定するのにどれくらいかかる?
それに結構あるのが、再現性が低い場合。非常に低い頻度でおかしくなり、イベントが
特定できない。こういうのはどうやって特定する?
>>313 >最適化の場合としても、2万ラインで関数が数千くらいだと、特定するのにどれくらいかかる?
ソースファイルが仮に20本あったとして、半分の10本を最適化あり、残りの10本を最適化なしでビルドしてテスト。
これで現象が現れるなら最適化した側のソース群を疑い、現象が現れないなら最適なしなかった側のソースを疑えば良い。
以下繰り返しで絞込みは容易。大した手間じゃねぇよ。
>それに結構あるのが、再現性が低い場合。非常に低い頻度でおかしくなり、イベントが
>特定できない。こういうのはどうやって特定する?
そもそもそういう場合なら最適化なしで問題が回避できてるかも分からんだろ。今の話とは違うな。
>>303 、
>>305 私は、プログラミングは長くても、
組み込みは浅いんですが、そんなもんなんですか。
残念。
>>287 の書き込みが一番しっくりきていて、
定数伝播に関しては、当たり前レベルだと思って書き込んでしまったわけで。
今議論が始まった内容に対して、弊害ないだろうし、
あのコードじゃ、速度だけじゃなくて、サイズも増えてるし。
できるだけすっきり書きたいだけで、
マクロは、ヘッダファイルの重複ロード以外使いたくないし、undefなんて、、
結局それがバグの少ないコードになると信じてるけど、
でも結局、最適化したいなら、配慮が必要だろ、って話で、ループするので、
この辺で私は主張をやめます。皆様ありがとう
316 :
774ワット発電中さん :2012/09/23(日) 21:49:44.37 ID:PbRmIdw0
>>314 なるほど、じゃ別の観点で。それは違うというなら、それでいいが。ありうるケース。
最適化した場所が原因ではなく、最適化によりメモリ配置が変わりバグが起きた場合。
間違っている箇所は別のソースだが、最適化したソースのメモリ配置が変わったことで
バグが顕在化する場合。この場合、その方法で特定できないと思う。でも十分ありえる。
317 :
308 :2012/09/23(日) 22:05:29.16 ID:oD4/cGUQ
>>310 自動車屋じゃNGなのか?
ウチじゃ、実害が無ければ、ソース修正を申請しても却下される場合もある。
例えば、バグで破壊してるメモリが偶然空き番地とか空きビットの場合。
修正によって、他の不具合が顕在化する方が心配なので、実機検査後なら検査結果が重視される。
>>316 どっかをぶっ壊すバグならどのタイミングで壊れるか特定するコードを所々に挿入して特定するな。
書き込みブレーク機能のあるデバッガが使えるならもっと楽。
>>311 >.Netでガーベージコレクションを使っているのは
>人間が管理してメモリ関係のミスを防ぐのは難しいと
何を今更、
ただし、ガベコレ以前に"deleteを呼ばない"だろが。
>>317 >自動車で
>>308 はNG<かもしれん>が
可能性を示しているだけで断定しているようには読めない
>>300 a = 1 + 2; って書かれてて、1 + 2 を実行時に計算してても文句言えないのね。
そらコンパイラ次第だわ、とね。なるほど、わかります。
>>304 だから過去形にしてるだろう?日本語が苦手なら、母国へどうぞ。
ドシロウトにやらせたら、メモリ管理もへったくれもないだろ
プログラミングに限らずドシロウトに任せられる仕事なんてない
ドシロウトに上っ面の知識詰め込んだでは
ドシロウトにドウシロト
327 :
774ワット発電中さん :2012/09/24(月) 18:51:21.76 ID:TOrzkAZA
>>322 そんなつまらないことはどうでもいいが、いつの時代の話だなんてツッコミ
しておいて、今の時代はどうなっているかについての質問はスルーかい?
( 参照
>>283 >>289 >>290 )
聞かせて欲しかったんだがなー。知らなきゃ無理か。
回答がないのは、つまらないツッコミはできても実は何も知らなくて
答えようがない。そう理解していいんだよね。
>そう理解していいんだよね。 間違った理解をする自由もあるし誰も止めんだろう。
329 :
774ワット発電中さん :2012/09/24(月) 18:59:47.80 ID:TOrzkAZA
331 :
774ワット発電中さん :2012/09/24(月) 19:13:12.75 ID:TOrzkAZA
>>330 じゃ、勝手に参照するな。参照しておいて、お前に言ってないはバカのすること。
>>331 アンカー付けてないことぐらい見て理解すれよ知障
333 :
774ワット発電中さん :2012/09/24(月) 19:21:39.47 ID:TOrzkAZA
>>332 文を抜き出して入れておいて、アンカーつけてないなんて言い訳初めて聞いたよ。
もういいから、消えてくれ。
>文を抜き出して入れておいて、 引用して言及なんて普通にあること。 それが直接本人に言ってることとしか理解できない奴はコミュ障。
335 :
774ワット発電中さん :2012/09/24(月) 19:32:34.18 ID:TOrzkAZA
337 :
774ワット発電中さん :2012/09/24(月) 19:39:10.47 ID:TOrzkAZA
絡みたいだけのキチガイと分かったので終了
終わったな。ルネサス このスレと共に。
そうだな。絡んでみたいだけのお子様TOrzkAZAは放置ってことで。
>>339 移行・保守コストを払いたくない企業が居る限り続くんじゃねえの。
342 :
774ワット発電中さん :2012/09/24(月) 21:08:14.10 ID:TOrzkAZA
つまんない奴にからんだから、関係ない奴がわいてきたよ。 qvzvtuiC みたいに誰だか分からないのに発信しているんじゃない。 関係ない奴は絡んでくれなくて結構、いや絡むな。
>>308 どっちが多いのかは知らんけど、明らかなコンパイラのバグに
ぶち当たった時のことは記憶にのこるな。最適化がバグってるときに、
最適化を回避するような記述をするのが結構ダルかったりしてね。
コンパイラと狐と狸の化かしあいをしてるような気分。
344 :
308 :2012/09/25(火) 02:23:24.93 ID:RVhv1m8V
>>343 今まで、コンパイラのバグだと騒ぐヤツをたくさん見てきたが、
幸いにして、本当にコンパイラのバグだったことは、ただの1度も無い。
通報して、メーカーに対応してもらったなら、間違いないと思うが、
アセンブリがおかしかっただけなら、ほとんどが担当者の勘違いだろう。
>>344 >今まで、コンパイラのバグだと騒ぐヤツをたくさん見てきたが、
>幸いにして、本当にコンパイラのバグだったことは、ただの1度も無い。
レベル低いとこで仕事してんのね。同情するわ。
キワモノコードばかり書いているからコンパイラのバグを見つけることになるんじゃねーの?
>>344 ”アセンブリがおかしかっただけ”っていうのは意味不明だけど、
コンパイラのバグにぶち当たったことが無いというのは、幸せな事だなぁ。
最適化すると勝手にパディングされて、構造体が困ったチャン
になってしまう奴なんかもいたっけ。
昔だと、ビットフィールドの扱いでバグが出る奴って結構多かったね。
書き忘れ・・ 配列をある領域に取るとアドレスの計算を間違うなんていうのもあった。 ポインタで書き直して回避したっけなぁ。
SH-C コンパイラ 不具合 でググると結構あるわな。 「そんなレアケースあるのかよ」ってのに引っかかってたコードに出会ったことがある。
そんなレアケースの報告して、修正されたことがあるw H8だったけど
351 :
348 :2012/09/25(火) 14:05:09.96 ID:rpX6Ipm1
>配列をある領域に取るとアドレスの計算を間違うなんていうのもあった。 >ポインタで書き直して回避したっけなぁ。 nearポインタをfar エリアでつかってました
>>352 near, far が何を指してるかも理解してないんですかぁ?
馬鹿は死んだ方がいいんじゃないんですかぁ?
なんちゃっての証明でも始まったのかい?
355 :
774ワット発電中さん :2012/09/25(火) 19:54:50.43 ID:bK4gA8Ht
>>327 >>322 は回答なしか、見てないとは思えないし、こんなつまらないことにも
レスするやつが、これだけ言われて平気とも思えない。
やっぱり何も知らなかったか。なかなか他のことを知る機会はないので、
知っているのなら教えて欲しかったのだが。
知っているのなら、回答お待ちしてますよ。
>>347 ある程度の上級者なら、Cソースと出力したアセンブリを比較して、
どう見てもおかしいからコンパイラのバグだと断定するだろ。
けど、それを他の人が確認すると勘違いだったってこともあるんだよ。
アセンブラのソース見るのはほんとにハマった場合だけでしょ コードが間違ってる可能性が高い チェックをいいかげん(テキトー)にやってます系か(書いた本人のチェックは甘いからね) それとも、書いて終わり系か
文法チェックはコンパイラにお任せする派
RX63TとE1でプログラム作成中なのですが、、 E1をつないでデバッガで動作中なのか、 デバッガ無しで動作中なのか、 プログラム側から見分けることはできるのでしょうか。 ブレークがかかるとハードが壊れる箇所があり、 デバッグ中は回避コードを実行したいのです。
ロジアナでもつけたら?
361 :
スパイ :2012/09/26(水) 06:54:53.44 ID:42NaEsi3
>>359 >ブレークがかかるとハードが壊れる箇所があり、
詳しく
>>361 そんなの極端な話、ソフトでLEDダイナミック駆動とかだって
そうだろう。
LEDポートに出力しているときにブレークしたら、LEDの定格電流を
超える電流を常時流すことになるだろうから。
>>359 実行中の判定は無理だと思う
ブレークした時の動作な「Start/Stop ファンクション」が使えないかな?
>>361 >>362 LEDダイナミックと同じです。
今回は電源電圧140Vのチョッピングなので、
デューティーが上がったときにブレークがかかると危険でして。
>>363 E1の機能でブレーク時に何か動かせるんですね。
まったく使ったことなかったので、これから調べてみます。
きっかけ作って頂いて、ありがとうございます。
短時間なら遅れてもいいのでやれるかもしれません。
>>364 その回路をなんとかした方がいいんじゃないの?
JTAG の信号拾って停止させるとか。
工程的に無理っぽい気もするけど。
>>365 ありがとうございます。
デバッグ用のコネクタが差さっているときに、変化する信号があればよいなと思いました。
基板ができてしまっているので、やるとしたら次のステージになりますが、
信号追加するか、EMLE端子なんかをCPUで読めるようにしておくのは良さそうですね。
ポートの空きも厳しいかもですが、デバッグしにくいのも辛いのでよく考えてみます。
>>356 一見間違っているように思えて、実はコンパイラが正しかったってケースね。
でも、その勘違いを自分で正せないようじゃ”上級者”って言わないから(笑)
368 :
359 :2012/09/27(木) 02:40:22.97 ID:xwPK8lFL
>>363 E1/E20では、フック処理 という名称のようです。
CubeSuite+のデバッグ編の資料にありました。
周辺用レジスタに値を書き込めるようなので、
POEでタイマ出力を閉じてしまう方針で実験してみようと思います。
上手くいったらまた報告します。
鼻フック?
自分の中ではギャグのつもりだったのかな?
CubeSuite+がステータスバーに「ラピッドビルドの停止中」の表示のままよく固まるんだけど、うちだけ? 仕方ないのでラピッドビルドOFFにします。みんな上手くいってるのかな
HEWのパラレルビルドなんてIDEごと落とすよ
SmartAnalogの使い道がどうしてもわかりません。 幾らで買えるのかもさっぱりだし
>>374 ホビーじゃねぇよ。5000個の値段と使い道お願いします。
かふぇるねでinline指定の関数の実体が 複数作成されるから標準C++ではないって言ってる人がいるけど、 ルネのC++コンパイラって標準化されてるって記述がどこかに明記ある? CはC89やC99って書いてあるけど。
RL78と78Kどう使い分けたらイイの?
379 :
774ワット発電中さん :2012/10/04(木) 01:41:05.09 ID:IJACDTvp
希望退職で応募予定数を超えるのは、尋常じゃないよ。マジで。 今後の供給は大丈夫なのだろうか。
>>375 使い道もわからん奴が5000個なんてハンパな数の値段知ってどうすんの? つか代理店に聞けや。
>>378 パッケージサイズとかメモリ容量とか動作クロックとか消費電流とかを比べて決めりゃいいんじゃないの?
シミュレータで RL78 いじり始めたけど、ほとんど 78K0R だね。
動作速度と消費電流はすばらしい。ハードウェアマニュアル見ただけだけど。
382 :
774ワット発電中さん :2012/10/05(金) 09:24:54.45 ID:c9pQEIfJ
低消費電力の16bitCPUとしては、RL78とMSP430やPIC24FGA3等では、RL78は性能高いと言っていいの?
そういうのはスネークマンショーでな、 「まぁ・・どれをお使いになられても似たようなものですが・・・」
RL78のラインナップを見てると、 セルフプログラミング機能を使うと1kBのRAM容量を使うという注記が ある製品と無い製品とあるけど、どういうこと? 注記が無い製品は、RAM使わなくてもセルフプログラミングできるって読めるけど。 ハードマニュアル読んでもメモリマップは同じような意味にしかとれんし、 教えてエロい人
マイコン選べは、低消費になるとか、何考えてんだろ 定格での比較だけじゃダメなんだよ
>>385 マイコンが低消費じゃないマイコンでは、トータルでも絶対に低消費にはならないからな。
>>385 >マイコン選べは、低消費になるとか、何考えてんだろ
>定格での比較だけじゃダメなんだよ
定格以外の比較もして低消費マイコン選べばいいだろうが。
誰が定格比較だけの話してるんだ。馬鹿かお前
何考えてるんだろう。馬鹿はお前なのに。
まて、馬鹿は俺だ!
もちろん分かってたさ
秋月にRL78が来たね
低消費電力、低消費電力って騒いでいたバカは 秋月の回し者か?
いいんだけど、こんなに足いらないから 要するにDIPで出せよ めんどっちいんだよ
A,X,B,C,D,E,H,Lなんて今更使いたくねぇよ
そんな事より、レジスタの割当がシリーズごとに全然違うのなんとかしろよ。 アドレスが違うだけならマッピングし直せば済むが、統廃合すんなよ。 ミドル全部作り直さなきゃいけねえだろが糞
頭の悪い作り方してんのねw
やってんのはlinuxとかToppersなんだけどさ、ルネの都合だけで完結できねえんだよ。
>397 それは素直にルネを見捨てるべき。 ARMのメーカー間の互換性を考えながらミドル作るほうがまだ建設的。
プログラミングの一番無益な部分を毎回作り直さなきゃならないってのは もう見捨てるしか無いんだなやっぱし。
使うCPUをコロコロ変えるのが問題だとは思わないのか?
作るものによってCPUは変えるだろう? 決めるのは客だし
客にこれにしますよといえば、んじゃーそれでいいですよ。で終わるうちは珍しいんだな
そりゃそれで終わる時もある
使うCPUをコロコロ変えるのって、 平成生まれの学生ぐらいしかいないような気がする。 スネークマンショーをやるのを格好良いと思っている「ゆとり」は、深く憶えようとしないで、 常に性能の良い新しいチップに逃げるからな
システムの規模によってシリーズ内の別のCPUに変えるなんて普通にやるだろうに。 それすらままならないルネはもう見捨てるしか無いんだ。
レジスタ割付変えるだけじゃん その上の制御はどのCPUも似たり寄ったりだし
>>406 おまい本当にリプレイス作業した事あんのかよw
やる前の俺と同じ事言ってるよww
安請け合いして、人が死ぬこともある よくよく考えて返答しなさい
人が死ぬような仕事はやってないので何とも・・・
開発担当者が過労で死ぬという意味ではないかと… 見積もりが甘すぎるのが原因でな。
レジスタの設定タイミングで 大麻使ってポーリングしたり、大麻が余ってなくて、 nop回したり、 もともと設定内容がenableになるのに割り込みでステートを確認する仕様だったのに、 割り込みラインがいっぱいだったり とかか?
大麻使うと時間の感覚がなくなるし割り込みとかどうでも良くなる
なんせポートの設定方法がバラバラ、設定したポートの使い方がバラバラ、 割り込みかポーリングか、ステータスが読めるか読めないか、それもバラバラ。 もうイヤ
ふつうのパソコン(特にAMD)が羨ましく感じる事はある
もう嫌がらせの領域だろw
もうさ、少しくらいハードロジック高価になってもいいから、統一しようぜ。 その方が新CPU発表から市場で活発に売り買いされるまでの期間短くて済むからさ。 しかもそっちの方が、上位アプリケーションにかけるパワー集中出来てもっと市場が広がるってもんなんだけどな。
移植作業って無駄だよなーといつも思う どうしてもオリジナルと違ってくるし マイコンのユニバーサル規格的なものがあればいいんだけど 音頭はまいこんシャアナンバーワンのルネサスたのむよ(笑)
で、次から次へとこれが統一規格だぁっていって毎回全然アーキ違う石を発表するんだろ?
USBみたいに下位互換にしてくれればいいよ この業界って互換性が一番大事で バスはある程度共通のくせに マイコンのコアは無視されすぎだよ 何なのこのスレタイの長さは
物理的な足の数や番号と機能はなかなか統一するのが難しいと思うんだよね アドレスも統一しちゃうとリザーブの山になりそうだし
>>420 リザーブの山のどこがいけないのかわからない。
むしろそんな所をケチって市場で活躍出来ない石になっちゃう方が損だろって話
足が統一されているはずのCANもH8/SHとRXで制御がぜんぜん違うぞ。 H8/SHもかつて変わってRCAN-ETって新アーキテクチャになった。 RXはこれとも違う。 RCAN-ETとかルネサス統一規格と誤解させるようなキャッチつけるな。
>>421 あまりに多いと仕様書読み辛くない?
まあリザーブ部分は表記省略すればいいか
同系の石での機能の有無+オプションは、わりとわかりにくい。 あれが無数にある石で起こるのかと思うと、いささか…
まぁ、上に一枚ラッパを被せてくれればそれでいい。 PSoCなんかもそうだし、Appliletなんかもそうだったと思うけど、 実際のレジスタのアドレスどころか、レジスタの存在そのものを 意識することもなくなってる方向だもんね。
ここの太客は古くからのソースを自分でメンテしてるからな。 新興勢力のマネをしてラッパとかを企画してもなかなか採用してもらえない。 客のわがままを聞いて細かく修正していくしか生きる道が無い。
瑠根砂洲は部品メーカーに甘んじてるから足元見られて叩かれる。ピラミッドの頂点を目指せ。
先ずはあのバカみたいに沢山あるCPUラインナップを1/100に減らせよ。 あんなん保守し辛くて自分たちの首絞めてるだけだろ。
430 :
774ワット発電中さん :2012/10/13(土) 13:29:30.24 ID:mWsDjMEH
個人的印象だが。 日立−三菱はまだしも、そこにNECが入ってきて 「俺が王様じゃ。お前ら俺に従え」といった時点で終わった気がする。
(俺の中での) NECの実績 国民機 USBチップ モバイルギアとか 日立の実績 68系 静音HDDとか 三菱の実績 ・・・? (エアコン霧ヶ峰は最高) ルネサス社内権力(妄想) 東芝>NEC>日立>三菱
なるほど、新しい
>>431 三菱はビルとか産業機械とか法人系強いんじゃないの?
各社民生品だけやってるわけないよ
>>431 シーケンサとかって、どこがトップシェアか知ってる?
て、何に使ってるか知ってる?
いいから糞みたいな劣化CPUは全部廃番にしちゃえよ。
いまは何処がいいんだろうな?シーケンサ。 三菱Lシリーズを使ってるところなんて聞いたこと無いや。未だにQシリーズばっかりだし、 アナログとかパルスとか232CプロトコルマクロとかSDカードとかぶん回したかったら キーエンス一択だし。(三菱使えって言われたらナニそれ、嫌がらせか拷問?て云う) オムロンはNJシリーズ迷走まっしぐらだし、売れてるって聞かないし。 パナはFPWINの大キャンペーン展開してたけど、あんまりシェア持ってなさそうだし。 そもそも国内新規とか更新需要めっきり減って海外案件ばっかりしか最近見積もりしていないや ノーケンが国内特約してるシーメンスS7シリーズが大体8割ぐらいかなぁ。うちんところは。 ほんと、国内設備の仕事めっきり減った・・・
これらシリーズの中から業務に使う最適なシリーズを選択し
その中から更に最適な個別のCPU型式を選べ。
RL78/D1x,RL78/F1x,RL78/G1x,RL78/I1x,RL78/L1x
RX200,RX600
78K0/Dx,78K0/Fx,78K0/Ix,78K0/Kx,78K0/Lx,78K0R/Fx,
78K0R/Hx,78K0R/Ix,78K0R/Kx,78K0R/Lx,78K0S/Kx,
UPD78F07xx,UPD78F80xx,UPD179F1xx,UPD7800xx,
UPD7802xx,UPD7803xx,UPD7808xx,UPD7809xx,
UPD7890xx,7891xx,UPD7893xx,7894xx,UPD7898xx,
RL78/D1x,RL78/F1x,RL78/G1x,RL78/I1x,RL78/L1x,
R8C/Lx,R8C/Mx,R8C/5x,R8C/3x,R8C/2x,R8C/1x,
SH72Ax,SH7250,SH7780,SH7450,SH7750,SH7700,SH7210,SH7216,
SH7239,SH7231,SH7137,SH7200,SH7243,SH7260,SH7280,SH7080,
SH7606,SH7146,SH7147,SH7060,SH7144,SH7046,SH7047,SH7040,
SH7010,SH7050,SH7030,SH7020
V850E/Dx,V850E/Ix,V850E/Mx,V850E/Px,V850E/Sx,V850E2/Dx,
V850E2/Fx,V850E2/Mx,V850E2/Px,V850E2/Sx,V850ES/Fx,V850ES/Hx,
V850ES/Ix,V850ES/Jx,V850ES/Sx,V850E/Rx,V850ES/STx,RH850/F1x
4500/720,38000/740,7200
H8/300H,H8/300HTiny,H8/300L,H8S/Tiny,H8S/2100,H8S/2200,
H8S/2300,H8S/2400,H8S/2500,H8S/2600,H8SX/1500,H8SX/1600,
H8SX/1700,
R32C/100,M32C/80,M16C/60,M16C/50,M16C/30,M16C/Tiny,
M16C/20,M16C/10,M16C/80,M16C/70,M32R/ECU
っって多過ぎて
>>429 じゃなくても無理ゲーw
PICよりマシだと思うが
うちの場合、SHのどれかだな 他のは開発環境がないからSHで対応できない場合を除いて候補には上がらない
RL78とRXとRH850に絞ってるやん。
>>442 せっかく絞ってても、新規チップ出す度にレジスタ構成ゴッソリ変更するから、あんまり統一感無いんだよな。
>>431 >ルネサス社内権力(妄想)
>東芝>NEC>日立>三菱
なぜ東芝?
無知のなせる業であろう
>>445 テレビ番組の単独スポンサーの順番だろう。
昔のサザエさんが好きで、世界不思議発見は嫌いだということだ。
どうして東芝の名前があるのか自体が理解できない。 誰か解説してくれ。
過去スレで、「株式会社東芝以外」と揶揄するレスがあったが、 それの「以外」を見落としてたとか?w
東芝だけが単独路線でいくとあれだけ報道されてるのに、 それすら見落とす大馬鹿野郎だろ。 とてもエンジニアには向かない。死ね。首吊って死ね
今日もレジスタの比較作業だよ。
近所のスーパーの人も レジスタは得意だよ
>>451 抵抗をテスターで選別するだけの簡単なお仕事です。
まさかif文の勉強に丸1日かけたとか
ちげーよ。 CPUをワンランク高性能な物にして、製品へ機能追加するんで 先ずはレジスタの互換性から調べてんだよ。
レジスタの互換性って何だよ 命令セットのサイクル数とかじゃなくて?
if文は直ぐに理解できたが expression template は丸1月かけてなんとか理解はできたが、 いつまで経ってもすらすら書けず
ああいうのの源流はLISPだから そっち方面もやってれば本来スラスラ書ける
expression template がLisp? 何も知らない馬鹿はすっこんでろ。
いまだに大学では人工知能でLISP教えてたりするものなのだろうか。 たまにLISPぐらいはとか、PASCAL知っていればとか、アセンブラで書けばとか、 旧い教育の人がいて時々ビックリすることがある。
>>461 >旧い教育の人がいて時々ビックリすることがある。
そこでオススメの言語なりなんなりを披露しないと言うだけ番長
>>461 いまだにCADツール関係のスクリプトインターフェースが
LISPベースだったりすることはまれにあるなw
>>461 >>アセンブラで書けばとか、
お前、マイコンを実際触ったことないアホ世代だろ
こんな夜中に初めてのCやっちゃう人ですか? どうでもいいけど、アセンブラ知っちゃうとアホなC言語で生成されたアセンブラコードが歯がゆくていかんよな。 まあ、直接ポート関係や制御レジスタ系をアセンブラで書いちゃったりして、余計移植性落とすんですけどね。
歯がゆくてもオナニーアセンブリストの意味不明コードよりCの方がマシ
>>466 お前組み込み、マイコンのコード書くの辞めろ。
R8ならわからないでもないが 78Kでさえ今時アセンブラとかないわ。 おまいらCが吐くコードにいちいちイライラして、アセンブラでコーディングしてるの? 80年代かよ。
68000から他のアーキテクチャに移るのに苦労しているんだろw もうあまり先がないんだから、少し手加減してやれ
471 :
774ワット発電中さん :2012/10/18(木) 00:15:26.85 ID:ugkF+fAH
>>469 笑わせんな
アセンブラを書けない馬鹿は間違いなくまともなCコードを書けない
それはテメエのことだウスノロが。
アセンブラごときも書けないゆとりのアホはさっさと死ねよゴミ
アセンブラを何で書きますかね。Cで書くか。
もてぃろん、淫乱陰で!
はじめて2パスアセンブラを作った時は面白かったな。 そういや、ExcelのVBAで書いたアセンブラとかあったっけ。
アセンブラなんて1パスで済むのにね?
Scotty: Captain, we din' can reference it! Kirk: Analysis, Mr. Spock? Spock: Captain, it doesn't appear in the symbol table. Kirk: Then it's of external origin? Spock: Affirmative. Kirk: Mr. Sulu, go to pass two. Sulu: Aye aye, sir, going to pass two.
シャープ、NECが破綻でルネが国営企業になるとしたらその差はなんかな? シャープはともかく、NECはスパコン開発に参加しなかったのが国の逆鱗に触れてたりして?
アセンブラなんて書けないわけじゃなく書かないだけだろ。 解析のときはもちろん吐かれたアセンブラはチェックし、デバッガ使うときも 読めないと話にならない。 ただパイプやら分岐予測やらタスク管理で動かしてるRISCをアセンブラで書いても、 保守性と信頼性が悪くなるだけでメリットない。 速度が必要なら、素直にクロックあげれば済むこと。
いよいよもって石の淘汰を加速させろって事になるのか? 人のリストラ進めても取り扱い商品のリストラもやんないと意味が無い。
最近アセンブリ言語を覚えたばかりの奴は鼻息が荒くてかなわんな
あーあ、とうとうルネサスもゾンビ企業の仲間入りか。 回復する見込みもないのに徒に延命させるより、死なせてやる優しさも必要ではないか。
ルネサスが死ぬのはかまわんが、事業だけはどっかに引き継いでもらわんとこまるな
>>132 事業引き継がせるのはいいが、中途半端な後継製品出すくらいなら、完全保守品として永久凍結させるべきだけどな。
あれ? なんかアンカー間違ってるよ?
中途半端な目立ちたがりだから、16進数で書いたんじゃねえのw
>478 国の介入でルネテクとNECエレを合併させたら、NECエレが破産状態に なってルネテクまで道ずれに。焦った国が急場を取り繕ってるのが真相 のような気がする。 マイコン以外のNECエレ系の事業と工場は全滅状態だし。
コンパイラの吐き出すアセンブリはクソとか言ってる時代遅れの人がいまだにいることに驚き!! 組み込み歴30年以上の俺でさえ、15年前からインラインのちょっとした部分以外アセンブリなんて書かないわw
オー、規制解除されたから書けた 一昨日からこれ書きたくてしょうがなかったわw
アセンブリで書く頻度が減ろうとも「コンパイラの吐き出すアセンブリはクソ」であることに違いはない
アセンブリのコードがいかに美しかろうとも「イマドキのコアのコードをコンパイラ無しで書くことはクソミソに手間」であることに違いはない うん、どっちも不毛だ。 楽できて、ちゃんと動けばクソでも何でもええやん。
>「イマドキのコアのコードをコンパイラ無しで書くことはクソミソに手間」 ルネサスの製品にそんなのあるかね? せいぜいSHの遅延分岐くらいじゃね? 手間って言う程ではないよな。
最近はアセンブラで書いたコードをアセンブリって言うんだぁ。 アセンブリってなんかアッセンブリって言葉と混同して組み立て済み部品ってイメージが…
前はアセンブラっていってたんだけど、アセンブルするのがアセンブラで言語はアセンブリだろjkって話になったんじゃなかったっけ?
>>495 言語はニーモニック、もしくはインストラクションセットじゃね?
ニーモニックは命令にわかりやすい文字をあてがったもの アセンブラの擬似命令なんんかは含まない。
また不毛な言語学論争が始まったか
高水準アセンブラ
アセンブラ と アセンブリ って、 レビューア と レビューイ みたいな?
アセンブリ言語を処理するのがアセンブラ
シロウト相手にwiki引用するならともかく、 専門家のハシクレが集う学問板でwiki引用しても何の意味も無いから。 前にもハーバードアーキを非ノイマン型とか分類してたとんでも解説があったよな。
あぁ、そんなのがあったね。 ハーバードアーキテクチャが非ノイマンだなんて、どこでどう間違ったら そうなるんだろうと不思議でしょうがなかった。
wikipediaをwikiと略されるとどうしても違和感を感じる
ノイマンボトルネックのことを言いたいってことぐらい判るだろ 細かいことをいちいち突っ込むな
日本語版は、英語版の抄訳…と言うより手抜き訳になっているせいかもな。 英語版には "Contrast with von Neumann architectures" という項があるが それをまるごと省略してあるw
509 :
774ワット発電中さん :2012/10/21(日) 17:01:35.19 ID:vMsaZwrB
前提知識のない場合にwiki引用するならまだしも、 重箱の隅をつついてほじくり返し、 重箱を壊しかねないこの板でwikiなんか持ってきても、 何の説得力もないっつー話だ
ノイマン型じゃ無い石なんて今の世にあるの?
石がプロセッサという意味ならFPGAをプロセッサと書いてた記事はあった。 FPGAは非ノイマン型にもノイマン型にも化けるプロセッサとも言えるかな?
過去ログとか読めば解るが、wiki・ハーバード(ry・言語宗教は、荒らしが繰り返し使ってるネタ。 それとは別に、ARM関連はARM儲だろうな。 ところで、RL78 のレジスタ構成でAXペアあるけど、なんでXAにしなかったんだろ? アキュムレータが下位バイトの方が rp + A = rp とか書きやすかったと思うんだけど? 8080から続く呪い?
>>510 「データ駆動型プロセッサ」でググるといい。
そんな理由で諦めるなよ
TSMCの黎明期に次のような逸話がある。 87年創設のTSMCは、手始めに見よう見まねでDRAMを作ってみた。 これを米Hewlett-Packard(HP)や米IBMに持ち込んだが、 ビット欠けはあるわ、信頼性は貧弱だわ、ということで問題外の評価を受けた。 ところが、彼らがしたたかなのは、その出来損ないのDRAMでも売り先はないか と探し、市場を見つけ出してしまうところにある。 その市場とは、オーデイオプレーヤ業界である。 例えば、CDプレーヤの場合、CDに書き込まれた情報を、一度RAMに転送し、 これを音声情報に変換する。 そこに使われるRAMなら、多少のビット欠けも、少々の信頼性の悪さも 問題にならない。彼らはこのRAMを、「オーデイオRAM(A-RAM)」と称した という。このようにして、A-RAM市場を見つけ出したTSMCは、 A-RAMを量産した。量産するうちに次第に技術が蓄積していき、 まともなDRAMも製造できるようになっていったという。
かつて、日本半導体メーカーはメインフレーム用に25年保証の高品質DRAM を製造して、DRAMの世界シェア80%を占めるに至った。 ところが、コンピュータ業界にパラダイムシフトが起き、メインフレームに代わって PCが上位市場となった。 この時、Samsungや米Micron Technologyは、PC用DRAMを破壊的に 安価に大量生産した。一方、主要顧客がメインフレームメーカーであった 日本の半導体メーカーは、相変わらず25年保証の高品質DRAMを 作り続けてしまった。 その結果、コスト競争に敗れ、エルピーダメモリ1社を残して撤退に追い込まれてしまった。 すなわち、“イノベーションのジレンマ”が起きたのである。 結果、負債額4,480億3,300万円で会社更生法を申請した。
妄想はチラシの裏にでも書いてろ
520 :
774ワット発電中さん :2012/10/23(火) 05:45:40.80 ID:Dcl9hpDV
ラズベリーか。 CQのインターフェース最新号で 特集されてるね。 インテルも 安物ARM基板に席巻される流れが 始まってるのカネ?
ラズベリーは供給が困ったチャンだよね。潤沢に手に入るようになったら 「とりあえず、ラズベリーでいいじゃん」になりそうだけど
>>521 www.modmypi.com/index.php
ここならsony製造の512M版が1週間くらいで出荷されるよ。
ケースと抱合せ販売だけどね。
1. 該当製品 SuperH RISC engineファミリ用C/C++コンパイラパッケージ V.9.00 Release 00 〜 V.9.04 Release 01 2. 内容 該当製品に含まれる最適化リンケージエディタのレジスタ退避および回復 最適化を有効にすると、プログラムが正しく動作しない場合があります。 5. 回避策 以下のいずれかの方法で回避してください。 (1) -optimizeを使用しない、かつ-nooptimizeを使用する。 (2) -optimize=register、speedおよびsafeは使用しない。 -optimize=speed または safeは、以下のとおり設定を変更する。 -optimize=speedの場合: -optimize=string_unify,symbol_delete,branch -optimize=safeの場合: -optimize=string_unify, branch 6. 恒久対策 改修予定はありません。 バグ放置なんだから純正はカス
RXいいんだけど、ちょっと凝ったことやろうと思えばRTOSは是非ほしいし、 その点Linuxみたいなもんが既に動くベースができてるのはありがたい? ラズベリーはちょっと空きポートは少なそうなので、やっぱり小さいコンピュータっていう使い方になるのかな? TronベースのRTOSぐらいでとどめておいてもらわないと Linuxがベースで走ってると、デバドラ書けとかいう話になると治具に使おうにもめんどくさいかも?
コレクションもいいけどLチカだけでもやれよ>俺
529 :
774ワット発電中さん :2012/10/23(火) 15:40:54.42 ID:vnKutXAq
530 :
お得♪ :2012/10/23(火) 16:08:20.42 ID:rwt8h1aN
あぁ、それができるならいいことじゃねぇの? 随分前から、8ビットは8051互換、16/32ビットはARMでいいんじゃね? と思ってたけど、さすがにそこまでぶった切るのは無理だったか。 これでいよいよx86以外はARMで決まりだな。日本語ドキュメントも 充実するだろうし、国内でルネを使わない理由がいよいよなくなるな。
V850をRH850にして残してSH切るってのは解せん。V850の方がSHよか数が出てるってことなんかな?
>>526 ホントに OS というほどのものが必要か?setjmp、longjmp にちょっと細工した
簡易タスク切り替え機構ぐらいで十分なんじゃないか?
たったこれだけのものですげー便利になって俺は満足してる。
>>532 SH は華やかなイメージがあるけど、V850 は地味〜ぃにいろんな機器に潜んでる。
今関わってる業務みてても V850 はかなりの数出てそう。
ラズベリーRSに注文した 「出荷のご案内」が届いたが、発送予定は12/11/29だって
>>533 >ホントに OS というほどのものが必要か?
無知にもほどがある。死ねよアホは
>>529 >SHの新規開発は止めて
それどこに書いてる?RX上位のARMコアRZを新規開発中としか読めない
RZがあるのでSHは開発中止のソースは?個人的予想か?
必要に応じてRTOSを自作してたな。 結構面白かった。 RZで低価格なのがDigikeyなどで1個単位で簡単に買えたらボード作りたいな。
そこでトパーズ特集ですよ
>>537 だから必要だろ。俺は自分で車輪の再発明するつもりはないが、
同じような処理でそのたんびに作るより一定の仕様を満足したモノを使う方がよほど楽
リソース管理にタスク間通信に優先順位に伴うタスク起床、仕様にあるものを使う方がよほど作業効率は高い。
HOSにはさんざん世話になった。
マルチタスク化することで、見通しも良くなるからな。 日ごろこうした方が楽だろうなと思っていたものを少しずつ 作っていって、必要性を感じた機能を埋め込んでいったら、 それがRTOSと呼ぶようなものになっていたって感じだけどね。 まぁ、>539に言わせれば車輪の再発明だって揶揄されるんだろうけど、 この過程を経たおかげで色々と得たものがあったと思ってるわ。
車輪の再発明は社会にとっては全く役に立たないけど 発明した本人にとってはスキルアップの機会になるよ
社会は人で成り立っているんだし、再発明が全く役に 立たないなんてことはないけどね。
543 :
774ワット発電中さん :2012/10/23(火) 22:44:16.98 ID:gHXCQ0HO
>>536 SHは、RZでなくRX開発した時点で捨てられてるだろ。
保守はするだろうが、新規開発はないんじゃないか?
ARMベースのRZが本命なんだろうな。
>>543 >SHは、RZでなくRX開発した時点で捨てられてるだろ。
はぁ?全然違うわ。ちょっとは調べてから言え。
たとえばSH2aとRXは乗算器の語長が違う。製品コンセプトとしてRXではカバーできない高速クロック、
高速処理用途にSH2aを使ってくれとRX開発時にルネがコメントしてる。
すくなくともその時点でのディスコン予定はなかった。
ARMの方は今に始まった話では無く前からビジネスの一つの柱としてあった。
お前,学生かとーしろか?情報もってないアホはすっこんでな
>>536 529の2番目のリンクの図で、SuperHからRZへの矢印がのびている。
今後、SHの新規開発が全く無いかどうかは不明だけれど、
RZはSHの後継という位置付けなのは明白だろう。
>>545 なるほど2010年のラインナップと2012以降の予定では変更しますという発表なんだな。
プロジェクタ画面が暗くてよくわからんかったわ。
NEC組も入ってラインナップの再構築ってことだな。
RXは2010年当時と変更無し、
SHはRXではなくRZとRH850に分化していくと。
V850はRH850に分化するのとなぜかRXの方にも分化していく。
現状のV850はSHの下位ラインナップとの位置づけなんだな。
IPだけじゃなくチップにおいてもいわゆるパフォーマンス路線はARMに収束か。
SHって、もう10年以上前のSH4以降、あんまパフォーマンス出す方向で進化しなかったよなー。 ARMなんかよかよっぽどスジはいいと思うんだが、勿体無い。
パフォーマンス路線の用途ってのが現状においてもスマホとかタブレットPC以外に用途がないんだよな。 今回のRZとかそっち用途だと思うわ。マルチコアとかover 1GHzとか制御用途だと無用なことも多い。 制御用途としては単一電源駆動、仮にコア電圧とか別電圧になっても内部で生成する方向で処理してくれ。 RZが低消費電流、安価とかなれば設計する側にも新たな使いこなしが求められるのかもしれないけど。 仮に低消費電流でGHzとかできてもスルーホールのLとか実装上のレイアウト条件がシビアになりそうだし。
以前はARMが通信用、SHがアプリケーションプロセッサとして使い分け していたんだけどね。
>>548 資料をよく読んだ方がいいよ。
>>549 > 以前はARMが通信用、SHがアプリケーションプロセッサとして使い分け
> していたんだけどね。
>
この意見が正しい。
4/5のパネルになるように、ARMコアは元々通信用を目的にしている。
PLCやイーサースイッチ、PCIeとか。
最初のVGAうんチャラてあるのはSH2AやSH4Aコアを使ったVGAマイコンが
あるから一応おいとかないと既存ユーザーから文句がでる。
そもそもRXはH8系M系のマイコンを置き換えるためにでもSHの領域を侵さないように
クロックを抑えて作られた。でもSHは日立の財産でSH5以上はルネサスでは
作れない。当時のRISCとしては頑張ったんだけど、コンセプトが古くなった。
RH850は最初に自動車向けにだしたことで分かるように旧V850ユーザー向け。
NECと合併したときにRXはどこのラインナップに持って行きようがなかったが
RTのフラグシップで開発しただけに捨てられなかった。
急いでだしたから価格も高く原価も高い。
結局
>>543 からどれの後継て論議してるけど誰も明快な回答は出せないのがルネ
採用時は営業によく聞いて自分で最適なマイコンを選ぶしか無い
と、講釈をのべてみる。
551 :
774ワット発電中さん :2012/10/24(水) 18:32:16.02 ID:J/WLDUwr
まあ、とにかくユーザーのソフト資産をパーに しない方針を堅持して欲しいね。 SH系をなくす なんてことしたら、社長を○ろす。
社長をわろす?
553 :
774ワット発電中さん :2012/10/24(水) 19:46:43.25 ID:/Q+HGO6f
ハイエンドだとLinuxを無視できない。LinuxはSHをサポートしなくなっているから ARMを採用しないと、LinuxをサポートできるCPUがルネサスになくなってしまう。 そうなると、SHは足を引っ張る存在になる。SHからARMの移行は避けられないだろうし、 ルネサスの経営状況を考えると、どっかでバッサリ切られる可能性もあるんじゃないの。
走れ!めろす。
ARM採用ってなったらルネの存在意義ってディスコン対策以外何もないよね
556 :
774ワット発電中さん :2012/10/24(水) 20:25:41.27 ID:hSBYi08D
>>550 ルネサスの中の人も、どうなるか、良く分かってなかったりしてな。
SHはともかく、登場して日が浅いRXはかなり立場が微妙になった気がする。
どうせまた内臓周辺機能のポート設定やら何やらが石ごとにまるっきり違うんだろ? アセンブラ命令がどんだけ変わってもどっちみちCで書いてるから問題無いんだけど、周辺設定レジスタの構成や使い方がどっさり変わるのだけは勘弁してくれ。
RX62→63はずいぶん変わって大変だったな 違いに関する資料もないし
プロテクトレジスタとか殺意を覚えたw
ARMはスマホとか、タブレットで必要なのよね。
>>557 CMSISとかね。
まっ、今後はAPIを呼ぶだけっていう形になっていくのは必然だろうな。
PSoCなんかどこにどんなI/Oレジスタがあるのかなん全く知らないで
使うのが当たり前だし。
ローパワーはいいけど 1.5A供給ってポートから直に供給ってことよね? ポート直の供給がそんなにうれPの?
実装部品減るじゃん。
その分、電源強化しないとダメなんだろ?
そこに疑問を持つ意味がわからない
そんな大電流が基板上を流れても大丈夫なように電源ライン厚くするとか それが原因で増大するノイズの対策が必要になるとか、色々あるわけで。
スマホ関係の電源制御用のサブマイコンとみた
569 :
774ワット発電中さん :2012/10/27(土) 06:48:26.28 ID:TTVCBRee
メインの方もARMへの移行だしな。 iPhone6はルネになったりしてね。
ルネなんかにしたら、CPUの性能アップの度に周辺機能のドライバ作り直しになって、アプリやOS自体の機能アップが出来なくて自滅して行くじゃん。
>>570 サムチョンよりマシだよ。
もっとも、そのあたりの設計はAppleさんがやるから心配御無用
だったりして
サムソンは買ってきたIP繋ぎ合わせてるだけだろ
ウォンが上がってきてるから、アップルから切られたサムソンはフラッシュ以外もうダメだろ
政府がウォン売りドル買いするだろ
そのフラッシュも押されてるしな。 品質問題を隠しても隠しても・・やっぱり無理だな
ハード屋が回路弄って一台当たり一円のハードウエアコスト削減とかしても、 弄った回路のおかげでソフトウェアの開発全体が遅れると、 シリーズ寿命あたりの損害は国家予算並みに膨れ上がる。 だからポートをまとめて回路節約とか、アドレス振り直して回路節約とか、おまいらは一切考えるな。
そこまで損害が出るってことは、国家予算の何十倍もの売上があるってことに なってしまうがな。 つか、その程度でソフトの開発が遅れるようなヘボソフト屋なんてとっとと 首切ったほうがよほどコストダウンになるんじゃね?
ルネはゴミCPUをゴミCPUのママ新規開発しないで、保守に徹していれば、ここまで再起不能になることはなかったんだよ。 性懲りもなくゴミCPUを次々と新規開発して来たのが間違いのもとだ。
国家といってもアメリカからソマリアまでいろいろだからな
省電力で高速なら変な周辺のアクセラレータは不要。出来ないから客毎にゴチャゴチャやるんだけどね(ー ー;)
582 :
774ワット発電中さん :2012/10/28(日) 22:06:13.83 ID:L8g6yaCe
>>577 >>578 ソフトなんかもそうだけど、性能アップのための改造は
インターフェースが変わらない範囲でやれよな。
設計がヘボな奴には無理だと思うがね。
ハード屋ってのはワンチップ以前のTTL組み合わせで基板作ってた時代から、 インターフェースを製品ごとに変えて来やがる生き物だったよ。 それで移植性が損なわれてもお構い無しにな。
その程度の柔軟さも無いようでは、この世界から足洗った方がいいんじゃね?
>>584 互換性を保てない柔軟さが無いのはハード設計屋の方だけどなw
suppleなpliabilityでflexibleなHardさが必要なのさ
日本語でおk?
ハードがファームのソフトでクリンチしてます。
>>585 その程度の変更に対応できないような石頭じゃ、この先食っていけないだろうね。
世の中、ハードのほうがソフトよりも上流。 当然、人間的にも上級。 下層階級のソフト屋はハード様の仕様変更は、 徹夜してでもなんでも、対応するべき。 文句があるなら、設計検討の時点でチャチャいれてみ。
実際のところ、ハード屋ってこんなのばかりだね。
PICのアーキテクチャはせいぜい3種で性能でも分かれてるし 住み分けで混乱は起きてないんじゃないかと
別にPICなんてどーでもいいわ
>>547 SH2→SH2aはけっこう変わったと思うぞ。
機能によってはSH4より処理も実装されている。
どっちみちSHシリーズなんて先が無いだろ。
SH arpに先がないって?
>>595 マルチコアで出すなら、三重化+多数決回路で対自己障害性能を確保すれば、宇宙・航空・原子力関連向きに
ウケそうな希ガスる。 福一用ロボットにも使えそうだし。
会社が立て直すほど数が出るのかと
トランスピュータなんていうのをふと思い出していた。
602 :
774ワット発電中さん :2012/11/01(木) 12:43:22.51 ID:nHMeoc2A
ああ、あったね。 古きを訪ねて新しきを知るじゃないけど 埋もれた技術を掘り出して、今はやりの技術との融合なんて 考えると、トンデモな大発明でノーベル賞いやチューリング賞なんて こともあり得るわ。 GPU+マルチコア+トランスピュータ+京を ヒ素入りカレールウで良く煮込んで、ドラム缶に コンクリ詰めして海に沈めると、億単位の保険金が 支払われ、ブラック派遣会社の社長さんみたいに 毎晩ノーパンしゃぶしゃぶ三昧♪
印土人町亜ばばあすっこんでろ
誤爆ス万
トランスピュータのリンクからIEEE1394だったっけ??
>>599 同じパッケージに入っていたら、外部バスの障害に対応できないような気がする
>>601 元NつうコトでImPPのことも思い出してあげてくだちい
608 :
774ワット発電中さん :2012/11/09(金) 01:03:44.54 ID:4npIm/KC
H8系とSH系はどっちがいいですかね? やっぱり用途によるのでしょうか・・・
さげさげ
用途以前に、H8を新規に検討ってありえん。
そうですか。。。 では、SH系ではどのようなものが広く使用されていますか? これも用途によるものなのでしょうか。
さげさげ
バリエーションが多過ぎるからここで聞いても無理。 用途が決まってるならそれを特約店の営業に言えば選定してくれるんじゃね?
マイコンとしてH8やSH2x用途はRXにreplace
ウチも最初、機能の関係でSH検討してたけどRXに変更した。随分前の話だけど。 ちょうど震災の影響もあったんだよなあ・・・
>>617 いくらなんでもSH4なんて、もう検討する客はほとんどいないでしょ。
そのクラスは、イヤでももうarmに行かざるを得ない。
SHで使えそうなのは、SH2とかSH2Aだけじゃないか。
用途はラジコンとかそんなもんなんですが・・・
無人偵察機、爆撃機でもなければRXでいいだろ
結局電波そんなに出せないのでかなり限られると思いますがね・・・
無人偵察機の設計する奴が2chでCPU選定の相談をしてたら さすがに日本の未来が不安になるな
秋月にE1あったけど、何に使うの? いや、秋月のラインナップで使える石あるのかって話で。
あ、RX621マイコンボード売ってるのか…。
実際H8使ってる方がいたので・・・
ここのスレや仕事で触ってたりしないとロードマップなどはわからないだろうな H8などは最近リストラになったんだよ
趣味の工作ならなんでもいーんじゃねぇの? H8のボードも多分秋月でまだ売ってるだろ。
定年前のジジイを新プロジェクトに起用する事もあるまいて
要求に合うかどうかで、マイコン選定すんじゃねえの? マイコン選んだら、勝手に動くとか、思ってるとか
>>622 在日でもなけりゃ、仕事上でやってるやつが2chで相談事なんてしないよな。
趣味の工作ならH8でいいと思うが、H8は低消費電流ってことで意味あったよな。 RXのクロックあたりの処理量はH8SXの1.9倍らしいので、H8の半分ぐらいに落として、 システムクロック選べるなら電流消費も相当少くなさそうな希ガス RXのPLLは外部クロックのx8は固定で 内部クロックは、x8された外部クロックを分周して、/1,/2,/4,/8の中から選べるっていう認識であってる?
>>631 秋月で売ってる奴のデータシート見ると、
>RXのPLLは外部クロックのx8は固定で
外部クロック/1,2,4 * 8,10,12,16,20,24,25(PLL)
>内部クロックは、x8された外部クロックを分周して、/1,/2,/4,/8の中から選べるっていう認識であってる?
・メインクロック(外部クロック)
・メインクロック(外部クロック) & PLL
・サブクロック
・高速オンチップオシレータ
・低速オンチップオシレータ
二昔前なら大型ボードに載る規模が今は1chipだもんなぁ(感心)
でも自分にそこまでの用途が無いという… orz
>>627 趣味の工作ならそれこそPIC16F877やmbedで十分
>>633 さすがに16Fはない。Arduinoくらいにしてよ
サーボ制御のライブラリもあるし
自助努力が少ない mbedで精一杯の平成生まれと、PIC16Fでアセンブラしかかけないおじいちゃん() のことを言っているのだが。 Arduinoを使うのは、まず入門者で、伸びない学生はmbedに使用ボードがfixされる。 マイコンのアーキは宗教じゃないんだから、アーキが変わったから全く出来なくなるのは「ゆとり」だぞ
ゆとりってだけで、判断するのは、どうかと やってる、やれる子もいるだろうから ゆとりならゆとりのある対応をしないと
アーキテクチャがかえたとき、開発環境を構築しなおすのがめんどくさいよな…
アーキテクチャ「を」*
OSとかAPIを揃えておけば、ソースはCだから移植は楽チン なはず何だけど。 今までの競合他社蹴落とす為の仕組みが全部仇になってる感じw
それ、アプリ屋さんの発想だよ
でも、だんだんそういう方向だけどね。 Appliletなんかもそうだったけど、あぁいう環境になってくると どういうレジスタがどのアドレスにあるのかすら気にすることがない。
OS、APIを揃えるって事は、当然資源管理やドライバーのレベルで揃ってるって事なんだけどな。
「ルネさんのサンプルを誰かがイジって使ってた奴」が揃ってたりするねw
644 :
774ワット発電中さん :2012/11/13(火) 00:31:45.92 ID:Nvtn2jkU
MINICUBE2がSONYのVAIOだけ認識されないんですけどなにか対策無いでしょうか? Windows7 64bit VAIO Z ドライバーをインストールしてから接続しても不明なデバイスとなってしまいます。
64bitは無理なんじゃないのか? 知らないけど。
>USBドライバ MINICUBE2用USBドライバ V1.10.03 (32-bit版Windows OS用) しかないな
もういい H8でやる
いいじゃんE1安いし。 E10aを買わなくて済むというだけでSHやH8からRXに乗り換える価値あり。
えーっ、VMware だけど、Win7 64 bit で CubeSuite+ 使って動いたような記憶があるんだがな、MINICUBE2。
CubeSuite+ USB ドライバ V2.61.01 てのがあるだろ? CubeSuite+ 以外から MINICUBE2 つなげて使うってんなら知らね
654 :
774ワット発電中さん :2012/11/17(土) 11:21:21.21 ID:E0zHzmam
RL/78/G14のチップ4つほどチップワンで買ったら、プリンタのトナーが入りそうな箱に 銀色のでっかいケースが入ってたから、 「うぉ、誤発注で100個きたのか!」と焦ったけどプラスチックケースに4つだけちんまり入ってた。
655 :
774ワット発電中さん :2012/11/17(土) 11:29:45.38 ID:E0zHzmam
Raxino-i、選択肢の一つとしてありかなとも思うんだけど、
http://www.tokudenkairo.co.jp/raxinoi/order.html >■RAXINO-I (RaXino-iボード本体のみ) \9,800
>RaXino-iの基板のみのご提供です。
>ライブラリはバイナリ型式でダウンロードしていただけます。
>
>■RAXINO-I-DEV (RaXino-iボード+開発キット+技術サポート) \19,800
>RaXino-iの基板のほか、RXduinoライブラリと特電HALのソースコードがダウンロードいただけるようになります。
> ※ 従来、RaXino-iボードのみのお客様はライブラリのソースコードがご利用いただけませんが、
> この開発者キットをご購入いただくとソースコードもご利用いただけるようになります。
ライブラリのソース見たかったら+1万円というのには引いてしまう。
658 :
774ワット発電中さん :2012/11/17(土) 12:02:34.14 ID:E0zHzmam
>>656 とりあえずソフト組む分にはソースは、いらんのでは。
(実は開発用に買ったけど)
とりあえず思いつくのはこの辺。 ・ライブラリに関係すると思われる謎の現象が発生した場合、ソースがあると便利 ・ライブラリ外のハードウェアアクセスをする場合、ライブラリがハードウェアリソースをどのように 設定/使用しているか理解した上で行う必要があり、ソースがあると便利 ・ライブラリ呼び出しが遅かったりしたらライブラリの中身展開したりとか当たり前にしたいので ソースがあると便利
USBにネットワーク関連のデバイスを接続していると アンチウィルスソフトが干渉してきて他のUSBデバイスが正常に動かなくなることがある。 LAN変換はもちろん、例えばIEE1394やSCSI変換なんかもネットワークデバイスだったはず。
>>654 それなぁ。ほかのとこでもよくそういうことあるんだけど、
小さい電子デバイス数個とかもっと小さいパッケージでメール便で送って欲しいわ。
いちいち受け取りに出て行くだけでも面倒だしな。
ICの静電防止梱包だけならまだしも、それが巨大な段ボールに入ってることもあって、
廃棄するだけでも面倒なんだよな。
メール便はポスト投函で終了だし、届いたという確認もとれないしで、 事故が起きた時の対処を考えると嫌らしいんよ。 注文した側が届かなくても諦める・・っていうならいいかもしれないけどね。
>>662 メール便であっても届いたかどうかは送り側でも受け取り側でも追跡番号で確認できる。
配達終了なのにモノがないのは配達人がパクったか、投函後に誰かに盗まれたか
まではわからんけどな
>>663 ポストまで、と、受取人が受け取った所まで、とは、格段に違うがな。
会社ならポストに投函はないし 個人なら行方不明になったら再送すればいい 所詮IC数個だろ?
666 :
774ワット発電中さん :2012/11/18(日) 13:04:36.39 ID:Qp6S+KbW
>>659 確かに。
今回ソース付きで1箇買ったしE1はあるので、これで使い物になるか試してみて
次からは40ピンのMbedサイズのボードだけでいいわけだし。
MそれでもbedやARMチップに比べれば3倍ほど高いけど、
ホビーならともかく業務用で割り切るならそんなもんだろうし
高いICE使ってた頃からすれば十分だとおもう。
現場でWebコンパイルできるとは限らないし、そんなことする気にもならないし。
667 :
774ワット発電中さん :2012/11/18(日) 14:03:07.57 ID:DjS2Bp9B
>>665 そんな事言ってると、北朝鮮のミサイルにルネ製の石使用とかいつか報道されるぞ。
ミサイルなんてZ80でも飛ばせるだろ アメリカはもっとしょぼい石で月まで行ったんだぞ
プロセッサのパフォーマンスがミサイルの飛翔制御の性能に直接関わって命中率に影響すると思うから今更Z80はないと思うわ
北朝鮮はどこかに飛ぶミサイルさえあれば十分 北朝鮮の核ミサイルは戦争の道具じゃなくて外交の道具だから 当たるかどうかはっきりしなくてもとりあえず飛ぶだけで十分なんだよ
リソースが少なくても運用とシステム全体でなんとかできる=技術力がある。 リソース喰いまくり、パクリしまくらないとなにもできない=技術力がない。 かの国がZ80時代のアメリカにいまだ追いついてないことの証明だろう。
中性子ぶつけてもビット反転しないかどうかのテストしてる石が茄子田にもう殆ど残ってないし そもそも現行機種ではそんな対策は、市場ニーズ無い高コストだし この先生きのこれるのかな?とかいってる状態のルネがほいほいと小数ロット製作に手を挙げられないし
Z80はワイヤードロジックが多過ぎて故障の素だから、 ここはスッキリと6502とかでやるべきだよな。
>>672 今だからこそ出来るんじゃね?
人も工場も余ってて、放射線に鈍くなる様に大プロセスルールで作るのなら工場も選ばないし。
既存のチップ設計を流用すれば安く済ませられるだろ。
…まぁ、その辺のコストを買う側が負担してくれればの話だが。
RXて一部のポートのみ5Vトレラントなんだな。 LCXやっぱなくせない
RXのTシリーズは5Vだから、ルネサスは5Vのビジネス的な価値は 理解していると思う。 そのうちTシリーズの機能が拡張されるか、Nシリーズに5V品が 出てくるだろう。
RXは演算系と制御系でシリーズ分けする方針だからNシリーズに高耐圧はでないよ。 Tシリーズは5Vどころか100Vまで狙ってるみたいだけど。
直流100Vて何に使うの? スイッチングさせて、交流つくるか?
そんな高圧が凄い勢いでスイッチングするなんて、どんだけ電波雑音出しまくりたいんだよ。
Nシリーズが演算系に特化ってことはないだろう。A/Dも高機能タイマも 搭載してるんだし。 RX63Nマニュアル「5.1 I/Oレジスタ一覧」見たら数の多さに鳥肌が立つ。 ぜんぶ理解してからコーディングってたぶん無理。 けどぜんぶ読まなかったらプロテクションとかモジュールストップとかで ドツボにはまるやつが多そう。 SCIのTEとREの同時設定必須はかなり有名になったけど、知らなかったら これもはまる。
初めから全部自分で書くのはなかなか大変なんで PDG2 使ってみたけど、設定用のライブラリ呼ぶとかありえんわ。 Applilet もいい加減汚いコード吐くが出力されたコードで完結してるだけまだマシだな。 こんなもん最終的には全部リファクタリングだろうに。
>>681 >SCIのTEとREの同時設定必須
これはRX63では同期で使う時だけに限定された
>>679 PDPとか蛍光表示管とか、、、 蛍光表示管はアノードドライブだから違うか。
685 :
774ワット発電中さん :2012/11/22(木) 05:05:40.41 ID:UhR5X9Kt
>>675 おお、シャープのMZシリーズとか
アップルの初代PCとか懐かしいわ。
やっぱ、MC6809にして、OSは「OS9」を
使えば、完璧になるな。
宇宙に行ったマイコンは6502の方だろ?
6502はいいアーキテクチャだよな。 三菱の74系がそうじゃなかったっけ?
>>687 SHとかも行ってるな。はやぶさ(MUSES-C)とかは確かSHがメインCPU
もうSHが宇宙に行くことは無いのか…
過酷さは 宇宙用>車載用>>戦場用 だな
>>682 RX63NはRX62と比べて内蔵クロック機能など追加されたから、手書きだと
クロックを初期設定してCPUをとりあえず走らせるだけでも一苦労する。
プログラム自体は知れてるけど、マニュアル読んで理解するのがたいへん。
クロックに関係するレジスタがすごい数ある。
一回作ったら使いまわすにしても、PLL周波数範囲の制限の理解とか
不毛の作業はかんべんしてほしい。
HEWが自動で作ってくれるスタートアップルーチン流用したら10秒やん?
>>693 RX62Nではhwsetup.cというファイルが自動生成されたが
RX63Nでは出なくなった。CubeSuite+使っているがHEWと同じだろう。
クロック関連レジスタ設定が数倍増えてるし、選択肢が増えたから
自動生成できなくなったのだろう。
resetprg.cにHardwareSetup()呼び出しがコメントで残っているから
今後の機能追加があるのかも知れんが。
滅びの道をまっしぐらですなぁ
製造氷河期に絶滅するマイコンの恐竜たち トラ技の特集記事でやらんかな
>>694 開発環境違うからかも知れんけど
>CPUをとりあえず走らせるだけでも一苦労する。
にはならへんのやけど。 特殊な使い方しようとしてる?
たぶん、iodefine.hあたりの問題だよね
PLLの待ち時間とかどうしてます?
H8/500とか、H16とか。
699 :
774ワット発電中さん :2012/11/25(日) 11:26:44.09 ID:apk3nFon
RX63Nってそんなに使い辛いんだぁ。
>>700 従来機種から機能が増えていることはまちがいないよ。
ただ増やし方が従来機種からの上位互換に中途半端にこだわっている
せいか、どこをどうさわったらどうなるのか、一見わけが判らない。
慣れの問題とは思うけど、慣れるまでのハードルがどんどん高くなってる。
ルネサスのエキスパートユーザになることが、技術者のキャリアにとって
有利かどうか疑われているこの時期に、このCPUでファンを増やせるのか
ちょっと疑問。
RX63Nがややこしくて腹が立っているので、割り引いて聞いてね。
クロックといえばこれもRX63Nからだけど、たとえば12MHzの水晶を実装して
96MHzで使いたい場合、いったんPLLを16逓倍192MHzに設定して2分周する
必要がある。12MHzを単に8逓倍したら動かない。
そりゃ理由はあるのだろうし、マニュアルを注意してよく読めばわかるん
だけど、これだってはまる可能性は大。
まあ、一つの石に精通してるって言うのは、一般的に良い事だろうけど、 癖があり過ぎな石だと逆に、潰しのきかない負の知識だしな。
>699 > そもそもメインクロック発振安定待ちとかPLL発振安定待ちとか他のCPUでも見たことない。 それは見識が狭すぎるだけだ。他でも普通にあるので、そのへんで潰しの心配する必要はないぞ。
704 :
774ワット発電中さん :2012/11/25(日) 19:03:18.62 ID:hDv5LUB+
おまいら的に「がじぇっとるねさす」はどうよ?
おもちゃとしては機能の割に安いしいいんでないかな。>がじぇるね ライブラリのソースが今んとこ非公開なんで突っ込んだ使い方が難しいところは不満。 webコンパイラや標準のライブラリに拘らなければCubeSuite+ + E1とかで開発できる 普通のマイコンボードだし、人それぞれで色々な使い方できるんでないの。
706 :
774ワット発電中さん :2012/11/25(日) 21:15:49.03 ID:aIYbNzvm
内容も理解できてないような変なアンチが粘着しててキモっ
>>699 PLL載ってるCPUだと待ち時間ありますよ。あと水晶発振も実は安定するまで時間かかるんで
自励で水晶発振してるときには待ち時間は必要。
ただ、それを明示的に見せるか、見せないでCPU不動時間として隠蔽するかは考え方だよね
初心者には隠蔽した方がわかり易いし間違いないと思う。
ただ電源電圧低下時とかにそういう機種ではリセット時間が長く取られるので
個人的にはルネサス方式の方が裁量が利いて好きだったりする。
>>701 いちおう「かふぇルネ」あたりで聞けばいいみたいな感じだけど
http://bbs.ednjapan.com/renesas/ >どこをどうさわったらどうなるのか、一見わけが判らない。
>慣れの問題とは思うけど、慣れるまでのハードルがどんどん高くなってる。
それは感じる。機種変更のハードルが高いのは何とかして欲しい。
あとはI/O機能の複雑化(これは他社でも同じだけど)
そんな複雑なことするつもりないのに、初期設定が複雑になってるとかw
>12MHzの水晶を実装して96MHzで使いたい場合
>いったんPLLを16逓倍192MHzに設定して2分周する
>必要がある。12MHzを単に8逓倍したら動かない。
この帰還クロックの2分周縛りは実はわりと良くある話だけど
自分的にはPLL帰還クロックを2分周で使うのデフォなんで気にならないな。
(特にPLLを1つにしといてCLK系統を分岐するような構成が出来る奴)
ただ消費電力を減らそうとしているような石で制限作るのはいまいち。
hwsetup.cって、ただのサンプルファイルでしょうに あってもなくても、どうでもいいような
そうだけど、ルネの石使う限りは同じソース使ってた方が移植性が高い気がする。
出たよ「気がする」 これ使うやつって知ったかばっかだよな
荒れてるじゃねぇかグレッグ。別に問題ないと思うぜぇ。 おっと、上からくるぞ、気をつけろぉ! せっかくだから、俺はこの赤の基板を選ぶぜぇ。
>ただ増やし方が従来機種からの上位互換に中途半端にこだわっている >せいか、どこをどうさわったらどうなるのか、一見わけが判らない。 >慣れの問題とは思うけど、慣れるまでのハードルがどんどん高くなってる。 どこの製品でも似たようなもんだけどね。
>710 甘いな。
715 :
774ワット発電中さん :2012/11/27(火) 00:29:53.16 ID:RTj6ol+X
おまいら、がじぇるね弄って落ち着け
がじぇるねにToppersや、Linux入れて、苦しんでる。
あれ? 官民共同体での支援が決まったのに書き込み無しか もう終わってる?w
板違いだから市況1板に逝けばいいと思うよ
RX631の電圧監視回路 3組あるのにレベル設定のレジスタがあるのに 2つは同じ電圧で2.95Vしか設定できないし どのような使い方を想定してるんだ。 VCCを3Vで使うには停電検出用には高かすぎる。
知らんけど、3.3V系使う前提で2.95Vで異常検出して2.7V(一応保証範囲の下限) まで電源電圧が落ちるまでの間に始末をつけてくれっていうあたりじゃねぇの?
マスクパターン修正すんのマンドクセ」だろどうせ。
>>720 2回路別に検出電圧設定レジスタがあるのに
2回路共に2.95Vのパータンだけが許されてるんだよ
>>722 知らんけど、「どのような使い方を想定」っていうなら、
3.3Vを通常使用の下限として電圧監視しておいて、
電圧低下したら後始末しろっていうなら、別に2.95Vで
’高すぎる’っていうことは無いんじゃねぇの?
RX62が RAMスタンバイ電圧VRAM 2.48 Vdet1 2.75 2.85 2.95 Vdet2 3.05 3.15 3.25 で、 RX63が RAMスタンバイ電圧VRAM 2.7 Vdet1_A 2.75 2.95 3.15 Vdet2_A 2.75 2.95 3.15 だから、可変にできるようにしたけれど、検出電圧範囲のばらつきが大きくて保証ができなかったのでは? RX63T-H暫定仕様書 [3V版の場合] b3 b2 b1 b0 1 0 0 0 :2.90V 1 0 0 1 :2.85V 1 0 1 0 :2.88V 書く場合、上記以外は設定しないでください
また明日からRX62のI/Oと格闘する日々が始まるお。
外部バスモードで潰れてるピンに外付けデバイスが繋がってないか心配だお。
そんな石は捨ててしまえ。
RX62Tとcubesuite+で、C++アプリでプロジェクト作って、製作開始なんですが、 #include <assert.h>してassert(0);て書いてビルドしても ** L2310 (E) Undefined external symbol "_write" referenced in "fflush" で怒られますが、ライブラリでもリンク指定する必要がありますか
assert()が何をする物なのか考えれば分かると思うけどな。
assert:断言する,力説する,強く主張する なんだネトウヨのことかっ!
RX600シリーズを使って工作をしたいのですが(日本語の資料が充実していると思うので) 安価な基板だとやはりInterface 2011/05号の付録ですか? 他に良さそうなアセンブリ済み基板があったら教えてください よろしくお願いします
>>732-733 横からだけど答えられないなら黙っていればいいのに
質問スレでもそうだけど平然と中身のないレスをする奴がいるよな
本人は答えているつもりなのかもしれないけど完全にレスの無駄
GR−SAKURAでどうだ
いつからココ質問スレになったんだ?
何が良いのかは本人が判断すればいいこと。 用途やら必要条件がわかるのは本人のみ。 だから素材だけ提供ってワケだったんだが、それさえも許されないらしい。
日本語の情報が多いかは疑問だな。 メーカーの資料の充実は間違いないが、実際ユーザが使ってみてブログなどに 出してくるようなノウハウ的情報は必ずしも多くない。
そうなると、ルネサスで括るのは広すぎになるわけで 以前の奴をばっさり切り捨てたくなる気持ちもわからなくもないがしかし。
>>737 上2行は同意だが3行目ちょっと違わないか
>>731 のマイコンスキルは不明だが「安価な」と書いてインターフェイスの
付録を挙げていると言うことは、RXは未経験で安い奴が欲しいみたいな感じだろう
そこにウン万円もする評価用ボードを挙げたあげくにそれらを使うメリットを
説明しないというのは答える気がないでしょ
というか畑違いのマイコンを使うときのハードウェアの選定って苦労しないの?
大手企業の人間だったら電話一本で営業が飛んできて詳しく説明してくれる
のかもしれないけど個人じゃ無理だ。金に余力があるなら片っ端から買って
試してみる事も出来るだろうけどそんな事が出来る人は一握りだろう
開発で使用するにあたり、このボードはこういうところが便利だとか、このボードは
こういう罠があるとか説明してあげたらどうだ?
もっとも自分はRXに詳しくないので説明できないが
無責任だがインターフェイスのが一番安そうだからそれを買ってみるで良いんじゃね?
壊してもう一個買ったとしても他のボードより安い
趣味ならお財布に優しいことは確かに大事だ
とりあえず本人待ちだな
>>740 ウン万円が高いかどうかは個人の懐具合に拠るので他人が判断できるものではないし、
相談者が複数の購入候補を選んだ上で個々の特徴等がわからずに判断がつかないなら
あらためて質問すればいいだけのことだろ。
相談者が言ってもいないことについてアドバイスする側はあらゆる可能性を考慮し、予め
説明するべきだとでも言いたいのか?
ウン万円は通常個人にとって高い そこらへんの常識を無視している時点で答える気なしだろ
何万もするボードっていっても、そういうのばっかりなのが現実なんだから 広範囲を見回して、そこから条件と比べて選択するのが医院じゃね。 まずは可能な限り選択肢を得ることだと思う。 細かい話は人によるんだろうが、俺流だとまずは情報をとにかく漁る、 そこから選択条件に応じて候補を絞ると。 値段で除外していくのは最後にしないと、そもそも選択肢が存在しない場合の方が多いような希ガス。 結局は、そういうのが質問者自身の脳内条件だから、外野が騒ぐのはこれで終わりで。 おそらく、CQ出版のアレが最終候補になると思うのは同意。 蛇足:ごだびんがんばって基板付き書籍シリーズを拡充させろ〜。 需要はあるんだからメーカー口説いてタイアップさせるべし。
>>741 評価用基板はもともと、会社で開発してる人向けだから。
基板設計して、部品あつめて、実装してと考えたら、
ウン万円でも安い。
あと、数が出る物でないから量産効果出ないし。
746 :
728 :2012/12/22(土) 09:36:19.65 ID:i5SiYj7d
>>729 ユーザーズマニュアルのスタートアップのところ見ました。
write()含め他の実例もありました。
出力を自分で定義するわけですね。
とりあえず、デバッガで止まってくれればいいだけなので、
brk()でも呼ぶ自前assert()でやてみますー。
そもそも、本人が安価な製品を希望して、Interfaceの付録を例に挙げているのに、 「他人が判断できるものではない」と言ってウン万する製品を紹介するのはアホだろ
雑誌の付録なんていつまで入手できるかもわからんし薦められん。
本人が既に入手してそれで満足してるなら
>>731 のような相談は出ないだろうし
他の選択肢を複数提示してやることは大事。
ウン万の評価ボードを勧めている奴はググった結果を貼っているだけだろ
RXの使用経験もロクに無いシッタカ?評価ボードメーカーの社員?
いずれにしろ回答者の風上にも置けない奴だな
とりあえず候補はこのあたりか
QCの付録(インターフェイス or RXマイコン活用法)
若松のGR-SAKURA
秋月のRX621
秋月のRX62N
>>731 は好きなのを選べw
趣味で使う上でこれらの廉価なボードとウン万円の評価用ボードに
価格分の差を見いだすことは難しいだろう
高い評価用ボードを買うくらいなら上記ボードとE1でも買った方が
よっぽど建設的だ
駄菓子菓子、E1は買っとけ。
電子工作コンテスト的なイベントの賞品でE1貰ったけど一回も使ってないなあ。 みんなデバッガなんかそんな使うの?
完成品作るのにデバッガ使わないに越した事は無いが、 正常に動いている物でも、ちとデバッガで追い掛けて見ると、 色んな所が想定外の動きになっているって事はよくある話。 まあ、デバッグが趣味なら必ず欲しい逸品ではあるが。
753 :
731 :2012/12/22(土) 23:52:25.43 ID:fdep/YNe
レスありがとうございます。言葉足らずで荒れてしまったようですみません
マイコン基板に万以上は厳しいです
>>738 一次(=公式)情報が第一だと思っています
blog等の二次情報は肝心な時(誰もやらないことをやるとか)に参考にならないことが
多かったりしますし
過去に海外製マイコンを使った工作中にそれで英語のユーザーズマニュアルと
格闘する羽目になって地獄を見た事があります
>>744 後の方は安いですね。今日都内に入ったので買ってみました
>>749-752 USB側に仮想COMポートを実装してデバッグするつもりだったのですが
E1ってあると全然違いますか?
ICEとしては激安ですが1万強と安くないですし悩みます
リアルタイムが必須の処理(USBとかの通信系)にブレークポイントを
使ったデバッグは役立たない気がしますし・・
>>753 逆だな。E1無いとちょっと複雑なプログラムのデバッグはお手上げになる。
>>753 デバッガに頼るような癖は付けるべきでない。
マイコンがある程度起動するまではデバッガ頼り。 printf攻撃が可能になったら、デバッガとの両面攻撃。 E1買おうかな。正直もうルネサス離れたいけど。
デバッガに頼る× デバッガで検証する○
E1はトレースが…
>>757 の言うとおり足回りがおぼつかない段階ではデバッガの威力は絶大。
足回りのしっかりした既存システムが最小限でも既にあって、そこから
改造したり機能追加したりする場合はprintfでもなんとかなる。
足回りをかためるためにデバッガを使うと デバッガを抜いた瞬間動かなくなる大惨事
出来合いのボードの話してて「足回りを固める」ってアホか。
マイコンの初期化とかそういう足回りじゃなく? ボードがかたまってなかったら、JTAG系は動けないような…
I/O、タイマ、割り込み、SCIくらいならシミュレータでデバッグできそうだけどダメなの? そしてここまで実装できればprintfが使えるから後は実機でも何とかなりそうだけど
だからさ、デバッガなんて一切使わなくても作れるんだよね。 でもあった方が断然制作の進行速度が速い。
>>765 が真実。
金はないけど自信と時間はあるっていうならデバッガ無しでやればいいよ。
でも、たった一万五千円であれだけのことができるなら使わない手はないと思うけどね。
デバッガ前提のプログラミングって、「自分は頭が悪いですよ」と言ってるも同然。
まあ頭悪くても、プログラムを完成させた方がエライというのは変わらん。
デバッガ使わなくてもOKという人は、 あまり複雑な割り込み制御をしたことが無い駆け出しな人か I/O関連を直接叩かなくていいフレームワーク上で開発をする人だろうね。
相談者をダシに宗教論争をしているこのスレって・・・・ マルチメディアデータを扱う規模のコードをprintfでゴリゴリ書いてしまう人も いるんだし、デバッグするにあたって純正デバッガの使用が最適かどうかは 人によるとしか言えないだろ
マルチメディアデータ? そういうロジックオンリーのデバッグはむしろprintf駆使した方がよっぽど効率いいぞ。 デバッガ使うのはあくまでもリセット発生しちゃうとか割り込みとかその辺の挙動観察が目的だからな。
やたらデバッガを推している奴は、上で高い評価用ボードを推しまくっていた奴と同一人物か? 抽象的なことばかり書いて具体的な事は一切書かないし、相手にしない方が良さそうだな
何このアンチ臭な奴w 評価ボードが高いと思うなら自分で作って見れば? それを安く売ってくれるならもっと嬉しいがw まあ他人に勧めるとなると実績のあるの勧めちゃうからなあ。 デバッガを推すのは強制じゃないからどうでもいいよ。趣味で遊ぶ程度なら要らないと思うし 組み込みを仕事として金を貰うなら、デバッガは要らないので持ってませんとは よほどのアホか天才じゃないと言えないと思うだけだわな。
趣味だったら、GR-SAKURA で90%位の人は間に合うんじゃないの?
ルネサス謹製のがじぇっとるねさす通称GR-SAKURAでいいじゃないか E1も使えるよ?
デバッガ代が、自分の数時間から1日分の工数費用以下なら、あったほうが得だな。 趣味で、何日かけてもいいなら、なくてもいいんじゃね? デバッガあれば一瞬でわかる割込み多発の解決とかで、正月休みを楽しみたいなら ないほうが楽しいでしょう。
ただ単発のお仕事だとチョッと割高に感じる場合もあるんだよね 発注元に貸してもらえる場合もあるけどライセンス的に動かせない場合もあるし。 継続して仕事くれるならデバッガくらい喜んで買うけどさ。
使えない新人一人あてがわれる位なら、デバッガ10台くらい買って欲しい。
デバッガ10台あっても1台しか使わない
SH/H8はともかく、R8CやRXのデバッガは桁違いに安いんだから 客先から支給されないのなら自分で買っても元は取れる。
>>771 ,776
リセットや割り込み云々って具体的にどのような状況で
デバッガのどういう機能を使うと何が判るの?
リセットしそうなところをめぼしをつけてブレークポイント設定して、ステップ実行とか 割り込みフックや割り込み処理内にフラグ設けてウォッチ&トレースとか そういう話かな?
その場合、ステップ実行は意味無いだろ。 いきなりリセット掛かる場合は、リセット先にブレークポイント設定してそこまでの出来事をトレースだ。
>>783 ステップ実行だと問題ない って事もあるしな。
周辺回路の設計をミスってるとかで。
>>784 そこが切り分けれるだけですごく大きいよ。
>>780 ところが、R8CやRXの案件より、SH/H8の案件のほうがいまだに多いのが困る。
せめてH8S/SXにして欲しいな。
E10の馬鹿高いのにはビックリだ。 中にはFPGAひとつ入ってるだけなのにな。 …見た事無いけどw
あれも安いほうだろう ターゲット変えるたびに再コンフィグしないといけないのが面倒臭いが
各自の時間の価値は知らんが、 E1なんて費用効果考えたら一個買っとけってレベルでしょ。 (使わなくても保険で置いとくだけでもいい値段では…) 悩んでる時間で元取れるわ。クリッククリック
>>786 R8Cもディスコンてわけじゃないけれど、現状で終わりだぜ。
後継はRL78だとさ。
791 :
774ワット発電中さん :2012/12/25(火) 22:24:39.23 ID:ytkRtPn8
>>790 R8Cももう少速ければなあ、プリフェッチくらいしかついてなかったんだろうけど…
あとUSB付けてくれればデバッグしやすさも変わった気が、ナムー。
うちはH8とR8CとSHとRXを使っているけど、シリアル経由のファーム 書き込みで、H8とR8Cで書き込めないトラブルがやたら多い。 SHでもかなりある。RXはまったく問題ない。 ※FDTの注意事項にも、トラブルの可能性の記載はある。 USBハブを介したRS-232C変換ケーブルを使ったら100%書けない。 最新型ノートPCでは、パソコン直のUSBポートにRS-232C変換ケーブル を挿して使っても書けないことがある。 RS-232Cを標準装備した古いパソコンではまったく問題ない。 シリアル経由の書き込みプログラム(たぶんマイコン側)に、タイミング に依存する箇所があると推測している。 E10やE8aを使えば問題ないけど、これってしかたないのか?
趣味で手段を選ばなくて良いならともかく 仕事ならメーカー指定のハードで書くのが普通では?
>>792 USB経由のシリアルなんてそんなもの。昔は7bitとか偶数パリティセットするだけで落ちる粗悪品もあった。
最近よくはなったができるだけ使いたくないし、使うときはできるだけ良好動作のものを手持ちから選んでる。
そんなことで悩むのはくだらないので、PC-CARDやPCIのシリアルを使ったほうが安定してていい。
>シリアル経由の書き込みプログラム(たぶんマイコン側)に、タイミング >に依存する箇所があると推測している。 「マイコン側)に、タイミング>に依存する箇所がある」 たいていの場合、わけわからんおかしなことやってるのはパソコンのUSBの方だよ。 USBじゃない、まともなシリアルポートがあるパソコンでは問題は起こらないことが多い。
>>792 新しいのは知らんがFT232なPlanexのアタプタは9600bpsでもデータ欠落しまくりで
まったく使い物にならんかった
んで、PL2303なエレコムのは問題なかったので手持ちは全部そっちに揃えてしまった
秋月で相当品を安売りしてるつうのもあるが
PL2303は3609に115200bpsで100回以上書いてるが失敗したことはない
立ち上がりと立下りの時間がまるで違う安物レベルコンバータがあるから そのあたりが原因かね
USB-232の良い品を聞いたことが無いんだけど、何でだろうね タイミング的にUSBの遊び時間が大きいんだろうか
うちの製品のボードにはCP2102を使ってるけれど、ドライバ同梱でノークレームだな。 USBシリアルのトラブルはWindowsドライバの問題だと思う。
TXDとRXDしか接続していないのになんで失敗するんだろ ブレークでも使ってんのか
TXDとRXDしか接続していないからじゃねえか?
>797 具体的なメーカー型式をプリーズ!
803 :
796 :2012/12/27(木) 18:20:06.82 ID:P/p9gUiP
>>797 データ化けならそっちを疑うんだが、1バイトまるごと抜けて
次の1バイトが出てくるので、USB-シリアル側の問題だと思う
問題の変換機はもう手元にないので深く追求できんが
USB-シリアルは、ラトックのしか信用ならねぇ…
>>798 そもそも良い物というのが存在しない
うまく行って当たり前、うまく行かなきゃダメなんだから
個人的な印象 FTDI (FT232RL)・・・一番安定してる Prolific (PL2303)・・・次点。たまにブルースクリーンで落ちる Silocon Lab. (CP2102)・・・マイナーすぎる。扱ってるのは苺くらい?
アイオーのがCP210xだったような… さておき H8にCP210xつないで、延々垂れ流すハード作ったら CP210xのドライバがアレなのか、使い方が悪いのか、PCのどんどんリソース食いつぶして青画面…
>>808 >初回のプロトタイプボードでは、イメージキャラクター「KURUMI」が描かれ、 髪飾りはフルカラーLEDで派手に光ります!
遠慮しとく
ペルソナ設定間違ってるって何度言えば…。
そういやSAKURA-SAは発売にならないの?何で?
どのパッケージを使うんだろう
評価版はまた最大容量のパッケージ使いんだろ?
このピンク色の塗装は、配線パターンを隠蔽する目的があるのか?
>>816 GR-SAKURAは回路図公開してるしそれはなかろう。
ピンクが淫乱なのは常識だが、桜色なら全く逆だ。 写真ではピンクに見えるが、SAKURAを自称するのは騙りではないか?
なーんか、またタダ働きボランティアにタダで配って 内輪でいいねいいねすごいねってやって終わりそうな予感
820 :
774ワット発電中さん :2012/12/29(土) 13:33:19.20 ID:XoJXSueD
エレクトロニクス・ガール、略してエレガーを餌に 助平なオッサンを集める作戦だからなぁ
>>819 地雷踏みと作例募集でしょ?いいんじゃないのそれで。
日本で出る杭は叩かれるからある程度クローズドにした方がプロジェクトは上手く進行する
Z80に毛の生えたような16ビットCPUだけど 仕事以外で選ぶメリットあるんかい
>>823 仕事以外でマイコンいじるメリットって何?
のすたるじーだろ
予定購買ターゲットが何故か女子高校生だから、そこんとこよろしくって感じで。
おっさんおことわりか、胸熱
>>827 いやいや、おっさんと女子高生を繋げる架け橋プロジェクトさw
お巡りさん、ここです
すぐに使える!実験・試作用マイコンモジュール(R8C/33Aマイコン付属) を使用して勉強を始めました、HEW4のことなど調べてもわからないことがあります。 ここのスレで質問してもよいのでしょうか? それとも該当スレがありましたら教えていただけませんでしょうか?
>>831 似た質問があったので解決しました、ありがとうございます。
HEW4 Ver.6.00で「リンカ」->カテゴリ「出力」->デバッグ情報が「なし」になっていたので、ソース内デバッグができなかった。
あー、もう組込みのプログラムなんて書きたくねぇ。 RAM
835 :
774ワット発電中さん :2013/01/04(金) 10:46:04.88 ID:/6V40RIU
>>834 マイコンのラインナップはまた混乱するのか?
そっちは専用LSIの話じゃね?
見事に姨捨山だなあ
>>836 NECの時みたいに後からMPU部門もやってくるんじゃね?
FeRAMやReRAMを搭載型が出るのか…
どんどん 株式会社『東芝以外』 になっていくなw
沖、もといロームのこともたまには思い出して上げて下さい。
すぐにディスコンの労務問題が生じるので嫌です
ロームの方が世界標準の製品寿命だよね ルネサスがディスコン嫌いだっただけでしょう。
RX63N系
途中で投稿してしまった RX63N系 GR-SAKURAってのが今ルネサスでホットなんだが お前らどう思うよ WEBコンパイラでどこでもプログラム書けるし 書き込みなんてオブジェクトファイルをドラッグアンドドロップするだけだし デバッグはJTAG使えるしで非の打ち所がないと思うんだが
僕はGR-SAKURAちゃん!
なぜ女性向け…
>>840 沖もといロームってのは違うような気がする。
俺的には24bit 独立ADC 7chのRX21Aだな。
>>844 GRは秋月とかマルツが出してくれるんなら欲しい
GRは最新RX63Nだし機能てんこ盛りだし安いし非の打ち所がない。 ただルネサスはアマチュアに使わせようとしているみたいだけど 残念ながらプロがメインユーザになるだろう。
>>851 >GRは最新RX63Nだし機能てんこ盛りだし安いし非の打ち所がない。
100ピンで制限多いゾ
ライブラリのソースが(今のところ)非公開ってのも使い辛い所だ
HEWのコンパイラもライブラリソースは非公開なの?
>>854 売るのも作るのも開発するのもルネサスなんだから
ルネサスの意図に沿ったものならそれでいいだろ
それが売れるかどうかはまた別の話だ
>>856 >売るのも作るのも開発するのもルネサスなんだから
GR-SAKURAって若松通商の商品で、基板とライブラリの開発はまた違う某社でルネサスとは別だよ
>GR-SAKURAって若松通商の商品で、 正確には製品か
>>856 なんか勘違いされてるっぽいけど、おれGR-SAKURAがアマチュア用に良くないとか思ってないからね
むしろ沢山売れて、組み込みに興味持つ取っ掛かりになってくれればいいと思ってるよ
>>851 の言う、「プロがメインユーザになるだろう」には同意できないというだけ
事あるごとに適当な事を書いて主観を押しつけてくる奴は何なの?
ピンク色は何とかならんの?
ちょうど仕事でこれと同じ100ピンの基板設計したばかりだわ もうちょっと早くこのスレ見てれば設計の参考にできたんだがな
半年ぐらい前に発売されてるのに宣伝が足りないんだな
ルネサスそのものが存在できるかどうかの状態だし。今も。
RX6xN の Ether って速いんだろうか? スピード比べたことないからよくわからないけど、 コスト面なんかも考慮して色々検討してたら、さほどスピードが必要ないなら RX6x1 に ENC28J60 でもつなげた方がいいような気がしてきた。もちろん SPI が余ってればだけど。 100 ピンパッケージでも外部バスが使えるようになるし。
Nと1との価格差がそんだけあるかどうか知らんが、部品点数は少なくするに越した事は無いと思うがな。
いやー、コスト面ってのは N と 1 の価格差というよりは 結局外付けで必要な物理層 LSI のことをいってたんだよね。 個人の遊びレベルで調べだだけだけど、物理層 LSI って千円ぐらいした ような記憶がある。
個人の遊びなら好きな方法で悩んでいればそれでドーパミン出まくるから、 そういう意味では両方の環境で動くようなハイブリッドなコードを書くとかw
ごもっとも。 ENC28J60 使ったことないからとりあえず使ってみよう。 その他、狂ったようなメモリの多さに脳汁出まくり。
ほんまや。 既製ボードに載ってたのが千円ぐらいなんでてっきりそんなもんかと。 どうもありがとう。
標準語以外の書き込みはイライラする。特に関西弁
なんでやねん
おかしくなくて全編統一だと気にならんな 一箇所だけだと異様だが
悔しかったら関西弁で仕様書とか書いてみ。
まず、なにをどうすれば「悔しい」になるのかよくわからい。 次に、「2chの書き込み」と「仕様書」を同列に扱う意味も意図もよくわからない。 説明プリーズ。
そこで英語ですよ
続きは雑談スレで
RL78版βテスタ募集のお知らせメールが来てたけど応募が少ないんかのう? 暇な学生さんとかいい刺激になる鴨出汁、こぞって応募すりゃあいいのにね。
企業は年度末の追い込みだし、 学生も卒論やら就職活動で多忙。 テスター募集するなら4月以降の方が良いのに。
基板がピンクとか、萌えキャラ印刷されてるとか、誰狙いだよって話。
ピンク色について弁明する奴はいねえのかw
キティラーよりよっぽどマシ
ピンクつーか日本のイメージ桜色なんだけどな
ピンク色と桜色の区別が付かない奴は日本人じゃないな
>>879 電気電子系なんて落ちこぼれ学科の学生さんの大半は
模範解答が無いものには手を出せないから駄目だよ。
>>887 ArduinoやPICで電子工作する本なんかたくさん出てるしパクリ元には困らんと思うけどな。
モニター申し込んで見たw
KURUMIちゃんっしょっ!
あれモニターじゃないっしょ
ぼくはKURUMIちゃん!
女子大生 くるみ でググったら大変なことになった
>本活動で知りえた情報について、営利目的で利用してはならないものとします。 これじゃ意味無しだから止めたよ。
嫌いや。ルネサスなんて...
>>897 どういうことやって営利に繋げようと思ったの?
ノウハウを使うなということの意味がわからんのか?バカじゃねーの?
>>900 >ノウハウを使うなということの意味がわからんのか?
「本活動で知りえた情報」なんて限定的だしね、実際にそれに該当するもんで
直接利益を得るとかしない限り気にするもんではないだろう。
不具合見つけても、内緒にしてね
RL78を使って何かやること自体がノウハウの蓄積行為だから、その経験を利用して別案件やろうと思ってもダメって事だろ?
>RL78を使って何かやること自体がノウハウの蓄積行為だから、その経験を利用して別案件やろうと思ってもダメ RL78なんて既にとっくに製品も出てて、ルネサスから資料も入手できて、評価ボードも ホイホイ買える状態で、コンパイラもgccならタダで配ってる状態で、んなわけないじゃんw 「本活動で知りえた情報」であることを誰が証明できるんだ? 馬鹿すぎる。
李下に冠を正さず
>>903 >RL78を使って何かやること自体がノウハウの蓄積行為だから、その経験を利用して別案件やろうと思ってもダメって事だろ?
「〜を使って何かやること自体がノウハウの蓄積行為」という理屈だと、この企画に参加して、
C++とかでプログラムを書いたらC++の仕事はできなくなるし、製品のレポートを日本語で
提出したらドキュメント作業もできなくなるってことだなあ。
まあ、バカは相手にしないでおくとして、
http://japan.renesasrulz.com/ >1月16日 GR RL78ボード・プロデューサー (1/19) ・・・ 応募人数に達しました。
ということで取り敢えずは良かった。
つうか、コードの再利用はアウトだろうなw おまいらさ、バレなきゃなにやってもいいと思ってる?
>つうか、コードの再利用はアウトだろうなw 「本活動で知りえた情報」が入ってなければ問題はないし、製品が出た以降は 多くの部分が既知の情報となるから更に再利用はしやすくなるな。 つーかGR-SAKURAのときにはコードの公開は推奨されてたしな、「コードの 再利用はアウトだろうな」ってマジウケルわw >おまいらさ、バレなきゃなにやってもいいと思ってる? やっていいこと悪いことの判断が自分でできないバカって滑稽だなあw
秋月の店員見てんなら、チップ抵抗100個売りにしてくれm(_ _)m
千石で買えばいいじゃん
>>906 それはいさささか極端だろ。
まあせっかくこの企画で得たノウハウ (≒コード) を使うなってのはないわな。
特別にライブラリが支給されてそれ使うなってだけならわかるけど。
RX600(ターゲットはRX62N)用のMinGWな gcc他一式ってどこかに転がっていますかね? 自分でビルドも考えたけど結構大変だし・・・
> 自分でビルドも考えたけど結構大変だし・・・ 面倒臭いだけでしょ GDLで検索、奥の方にお隠れになってる...
>>916 最近は必要な物をダウンロードしてmakeしていくだけで
ちゃんと動く物がビルドされるようになったのか?
昔クロスコンパイル用のビルドしたときはmakeだけでは
まず無理だったしパッチ探しに奔走した挙げ句にソースの
手修正を余儀なくされることもあったなぁ
gccの4.3辺りからgmp,mpfr,mpcを事前に用意しないといけないくなった (cygwinだとパッケージがあるから、楽) archによっては、わざとビルドでコケるようなことしてることがあるからなあ、gcc 手元のpatchでmingwに関係しそうなの libstdc++-v3/include/Makefile.in -PCHFLAGS = -x c++-header -nostdinc++ $(CXXFLAGS) +PCHFLAGS = -x c++-header $(CXXFLAGS)
libiconv,gmp,mpfr,mpcを本家mingw32のdevを入れたら webでよく見るやり方でビルドできた、msysで binutils 2.23.1 gcc 4.7.2 newlib 2.0.0 (全部patchあてなし) 組み込み spec を使用しています。 COLLECT_GCC=C:\rx-elf\bin\rx-elf-gcc.exe COLLECT_LTO_WRAPPER=c:/rx-elf/bin/../libexec/gcc/rx-elf/4.7.2/lto-wrapper.exe ターゲット: rx-elf configure 設定: ../gcc-4.7.2/configure --prefix=/rx-elf --target=rx-elf --enable-languages=c,c++ --disable-win32-registry --with-newlib スレッドモデル: single gcc バージョン 4.7.2 (GCC) msysでビルドするときのハマりどころみたいのもわかった
いつの間にやら評価版のままでアップデートマネージャが機能するようになってるな。 確か制限事項だったような記憶があるんだけど。
hew(死語?)の頃からやってましたけど
CubeSuiteでは無償版はアップデート対象外だったんだよ
けちんこ臭せえ
ツール屋じゃなくて石屋なんだから、開発環境はフルセットをタダで配布しやがれ。
タダで使うような人種を相手にするのは金と時間の無駄なんですよ 相手するのもタダじゃないんですよ? 大口を相手にして仕事できるのであれば、それに越したことは無いんです 小口は全部あわせたって微々たるものでしてね ちょっと敷居を下げてやったらゾンビのようにたかりやがる
普通は、無料配布しているツールのサポートはしない。 昔ダイヤルQ2で電話サポートするメーカーがあったが、今はどうなってるだろう?
大口相手の殿様商売でやってけるならそれでいいけど。 ゾンビユーザを育てないと海外勢に追いつけないんじゃないの。 うちは一度にCPU100個も買わない小口だから開発環境やミドルウェアに10万単位だとキツイし面倒だな。
10万単位でキツイとか個人の趣味でやってんですか? 同人でなんか作ってやってる人もいるようですね 金を出せないなら出せないでそれなりのやり方は知ってるでしょう? むしろそっちのほうが育つんじゃないっすか?www 大体、以前はどんな値段だったかわかってますか?今はタダみたいなもんですよ? それなのにさらに値段を下げろとほざく タダじゃないんですよ?開発費もサポートも
ルネの石使わなければ無問題。
タダでくれって言ってるのは俺じゃないのになんで俺にかみつくかな。 ちゃんとRL78, RX, R8Cのライセンス持ってるよ。 うちの製品内容と規模だとキツイと言ってるだけ。 あんたがルネサス支えてくれ。
>>927 オイオイ、「一応」トップなんだから、追いつけないはないだろう。
そもそも大口なら、ツールは何でもタダでもらえる。代理店がうまく処理するから。
オレも、今は小口だからタダじゃもらえないが、ツールに関しては比較的マシなんじゃないか。
無償ツールだけでまともな開発できるメーカーって、どこ?
ICEがないから、バグが多いとか言いたい系?
GR−SAKURAでも使ってて
>>925 「敷居を下げる」なんて日本語はないんだけど、どこの国の人?
てか、敷居を……って言い方はその状況で使う言葉じゃないし
朝鮮か支那の人?
助さん、格さん、もういいでしょう
お安く開発できますよ?
943 :
774ワット発電中さん :2013/01/25(金) 00:42:42.80 ID:mMVP8BcP
ARMでいいじゃん。
>>943 armって開発環境が面倒くさくないか?
無料でまともにできる?
あと、流通在庫で足りない中口のときって
どのメーカーなら納期が信用できる?
ARM採用よりルネサスならそれらが解決する って胸張って言えるかというと、それもどうかという話になりそうだが
TIのARMて評価基板\550で買えて、Code Composerという開発環境が制限無しで無償ダウンロード可能だったよ。 評価基板でデバッグも出来るっぽい。 こういうの相手にルネサスはどう戦っていくのか興味深い。高専の教材なんかに採用されたら、一気に広まって普及してしまうんじゃないか。
GR-SAKURA-SAっていったっけ? スマートアナログのシールドはおいくらでいつ発売すんのよ? 情報求む!
そういえば、シールドって5V仕様だよな? 3Vのさくらで使えないし、さくら用に出したらクレームのアラシだろうし、どうすんだろ? 両電圧対応なのかな?
ニコニコの〜Pみたいなもんか?
KURUMI p
βテスタみたいなモンなのに、この反応って何なんだろう? 余裕無い奴が騒いでるってことかな?
RL78とかマンドクサイ。 16bitに小細工してアドレス空間広げんな。 RX100に注力してくれ。
酷評でも無反応よりはマシ 最初とやかく言ってても後でこれ良いんじゃね?となるかもしれないし 酷く言われてるけど実際どうなのよ見たいな感じで試す奴がいるかもしれない
関係者乙
むしろルネサスはス/テ/マ要員増やすべきだよ 全然RLとか使うメリットが判らない
教育現場へ供給は気合いを入れてやった方が良いと思うな 将来顧客になってくれるかもしれない子供を取り込むことは非常に重要だ 世界の名だたる企業は当たり前にやっていることだしな
情報の教科でTK-80を扱わせるべき
>>960 情報処理に古典の授業はまだいらないだろ。
基礎であり古典ではない
今更TK-80は無茶だろ。何しろ部品の調達が大変だ 今風のTK-80を作るとなるとどんな感じになるんだろう・・・ まず8bitでバスが出ているマイコンががが・・・ RXなら出ているけど32bitではアドレスバスのデコードに PLDを・・・とか言う話になってしまうしなぁ それともがじぇルネでも与えてもっと上位レイヤーから 入門させた方が良いのだろうか?
>>963 >32bitではアドレスバスのデコードに
>PLDを・・・とか言う話になってしまうしなぁ
オリジナルのTK-80でもアドレスはA15とA9〜A0しか見てなかったしそんなもんでいいんだよ
>>964 メモリマップ的に尻尾だけデコードすればいいとはならないだろ
下の方にはRAMが上の方には割り込みベクタテーブルがいるからな
頭と尻尾の何bitかをデコードすればなんとかなる・・・か?
シンプルな構成とは言い難いがw
何故オールインワンないまどきの石にデコードとかトンチンカンな話してんの?
学習用のマイコンに部品を外付けする意図も理解できない人?
いまどきの石使うなら、周辺回路用のレジスタの設定教えた方がマシだろ。 あとはポートの先に何付けるかによってソフトの組み方変えるって教える。 ハード屋育てるんじゃ無いんだからしかも石内部のマスクパターンレベルのな。
>>968 ソフト屋育てるんじゃ無いんだから、GPIOの先にLEDでもSRAMでも色々繋いだほうが
子供の興味引くにはいいだろ。
石が今どきのかどうかなんて5年後10年後にゃ意味ない話だぞ。
アドレスのデコードはバスの基本的な動作だ バスの動作すら判っていない奴じゃアセンブラのコードも 理解できないだろうからデバッグも出来ない SDRAMを繋いだとたんに上手く動きませんとか言い出しそうだ オマケに自分で原因の切り分けが出来ない そんな奴が来たってソフトでも、ハードでも使えない。ゼロから 再教育しなければならない
だからそんなもん繋げる時にワザワザ自前で外部バス引き出す様なハードも今時は無いだろう。 何のために最初からI/Oポート付いてんだよって話だ。
>>971 学習の機材としてはプリミティブな物の方が望ましいことも理解できん人?
TTLでアキュムレータ組む所からやるんですね? わかりますw
>>973 学習用なら普通にアリだろ。
TTLよか継電器とか使ったほうが視覚的に面白いかもしれん。費用的には無理あるが。
実際それやると、CPUの学習以前にハンダ付けの学習になる罠 それが甘いと、動作が不安定でまったく学習効果が期待できないw
だからさ? ルネのスレで学習って言えば、たいていはポートの使い方とか設定方法だろ? そんだけでだいたいの外部装置は繋がってるんだからさ。 アドレスラインのデコードとか意味無いの。
>>977 >ルネのスレで学習って言えば、たいていはポートの使い方とか設定方法だろ?
>>959 の言う「教育現場へ供給〜子供を取り込むことは非常に重要」て話から
ポートの使い方がどうこうとしか発想が及ばない奴は医者へ行くべき。
979 :
774ワット発電中さん :2013/01/27(日) 22:27:39.32 ID:tD9KZJ6b
もう誰にも止められないww
>>978 だからスレ違いだって言ってんのにwww
>>980 >だからスレ違いだって言ってんのにwww
「(ルネサスは)教育現場へ供給は気合いを入れてやった方が良いと思うな」という話は
スレ違いでもなんでもないだろ。
ルネサスが元気になられては困る人なんじゃね?w
>>981 わかってねえなw
企業が教育現場になんで乗り出してるのかって言うと
自社商品しか使えない体に早期に仕立ててしまいたい為
だからMacでもそれが有効でWindowsよりMacが使い慣れてるからMacってなる。
そういう作戦で言うなら、共通の基礎知識なんて糞だ。
我が社の製品はこんなに便利だよって教えて、他社製品が使えない体にしないと意味が無い。
バカ正直に基礎教育やるってのは企業には何のメリッットも無い。
>企業が教育現場になんで乗り出してるのかって言うと >自社商品しか使えない体に早期に仕立ててしまいたい為 >だからMacでもそれが有効でWindowsよりMacが使い慣れてるからMacってなる。 >そういう作戦で言うなら、共通の基礎知識なんて糞だ。 >我が社の製品はこんなに便利だよって教えて、他社製品が使えない体にしないと意味が無い。 >バカ正直に基礎教育やるってのは企業には何のメリッットも無い。 ↑未だに本気で分かってないんだか、実は既に分かってはいるが引っ込みが付かなくて キチガイの振りを続けてるだけなんだか、判断できん。
おまいらが脱線してんだよw なんで利潤を追求するのが使命の企業にボランティアみたいな事させようとするんだよw 企業目線で言うなら、自社のツールを使う授業とか取り入れて洗脳教育を充実させろって方向だろw あと学習ボードは有料で配布な
ルネサスだってメモリぐらい出してるだろうに
ARMをブッ潰すくらいの覚悟で行かないとルネサスの未来は無いな
ルネのCPUでも普通に外部バス使うだろうに、何を怒ってるんだろう?
人の意見に聞く耳を持たないみたいだし頭のおかしな人でしょ
>>974 リレー程度なら100均やホムセンで材料集めて出来そうだな。
んなもん、実際に使用する石とあまりにも乖離し過ぎて返って無駄な知識だぞw