AVRマイコン総合スレ Part38©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
やだ、お父さんの長さ16cm太さ5cmのズルムケチンポ 小学4年生の血のつながった娘のお膣のなかでザーメンドプュゥッって出したいって PICPIC言ってるw 商品世代交代にCPUを絡めるなんて、、、アホと違うの? >>197 プロはバラツキを考慮して、仕様内に納まるように設計するってだけで、実在の部品を使う限り、バラツキは必ず発生する。 また、発作を起こしたのか、困った奴だな 「小学生の娘〜父さん」シリーズは飽きた いいかげん心療内科へ行けよ atmel studio 7 のdebugですが 例えば、5秒ごとに自動でステップする設定ないですか? 新石の情報探してたら、0.7V動作の石があるって知ったけど DIPが300milで はぁ? それなに? CPUが0.7Vで動いても、周辺が動かないような気がするし 用途って何ですかね? >>211 レスありがと でもLEDさえ光らないよ そんなことより、 >DIPが300milで はぁ? それなに? ってどういう意味? >>213 20pin300milと読んで、脳内に600milのイメージが浮かんで、何だこのデブって思ってしまった >>212 周辺まで0.7Vで動かすわけじゃないから・・・・ コアとIOは1.8V以上だし。 GCCだと64KB越えの外部メモリアクセスってまともには扱えないのね・・・・ あ、そうなんだ。 GCCでアドレス拡張レジスタ操作してくれる命令教えて。 やり方わからんからアセンブラでサブルーチン作ってアクセスしてる。 8bitCPUで64KBオーバをまともに扱えるようにしろと言われもな >>219 処理単位とアドレスの違いも判らんのか。 その理屈なら8ビットマイコンでは256バイトしか扱えんな。 データバスとアドレスバスという言葉も知らん奴に言われもな キミの理屈で彼に64kbOverを8bitCPUでGCCでまともに扱える方法を教えてやれよ 256KBのROMや24bitアドレスバス持ってるAVRの話をしてるんだがな・・・ アセンブラでは普通にアクセスできるものをGCCではどう書くのかって話であって、 バスがどうしたって話じゃないんだよ。 >>222 フラッシュ上の話なら far ポインタが扱えるマクロを使用すると思うけど pgm_read_byte_far()とか それにしても far なんてMS-DOS時代のCコンパイラを思い出すなぁ あ、話の分かる人がいた。よかった。 そう、farポインタを使いたいんですが、XYZレジスタに拡張アドレスレジスタを連結した後、 別の用途にそのレジスタを割り当てる場合に拡張レジスタをリセットしてくれないので、 とんでもないアドレスをアクセスしてしまいます。 ポインタを使ったCのコードだとレジスタなんて意識しないので制御のしようが有りません。 AVRlibcのドキュメントを漁ってるんですが、64KB越えの書き方とか見つけられなくって・・ atmegaで電子工作をしているものです。 uint8_t型の変数をインクリメントし続けて、オーバーフローした場合、0に戻ると思いますが、 その際uint8_t型で確保した部分以外のメモリに影響は出てしまうのでしょうか? >>216 は曖昧すぎて、何を意図してるのか不明なんだよ もし、64KB越えのFlash-ROM上のデータを得たいと言う事なら↓でどうだ data = pgm_read_byte_far(GET_FAR_ADDRESS(v)); >>224 ごめんなさい。これ以上の情報は持ち合わせていないのですよ… そこまで込み入ったプログラムを書いた事が無くて 興味がある話なので少し調べてみます。有力な情報が入ったらここに書き込ませて貰いますね。 >>225 その変数が割り当てられてる1バイトのメモリだけが変化しますよ >>226 あっ! GET_FAR_ADDRESS() 完全に忘れてました。横からですがありがとうございました。 当時、糞と言われたfarが使いたいと言ってるんだから 8086でいうラージモデルで組みたいってことだろう。 >>225 例えばこんなアセンブラコード lds r0,X+ これをXが0にオーバーフローするまで回すと拡張アドレスレジスタが+1されます。 次に別のコードでXレジスタに0x2000(内部RAMの先頭アドレス)を入れ直して同じコードを実行したとしましょう。 その時、レジスタr0には0x012000(外部メモリアドレス)のデータが転送されます。 CPUはアドレスの第3バイトである拡張アドレスレジスタを必ず使用するのに、 コンパイラの出力したコードはXHとXLのみの16bitしかセットしてしません。 DMAドライバとかはアドレスの第3バイトまで意識したコードで作られているので、 アドレス空間が24bitでも正常に動くコンパイルオプションがあるのかなと思うのですが、 それがわからんのです。 マクロやサブルーチンでアクセスしようにも、割り込み処理でnearポインタを使った転送をされると、 拡張アドレスレジスタのおかげで結果がおかしくなるため、いちいち割り込み禁止をかけなければなりません。 ただ1MbitのSRAMをバッファに使いたいだけなんだけどなあ。 >>230 AVRの外部メモリアドレスポインタって24bitのものが有るのですか? データシート読んでみたいので具体的な型式を教えて下さい 確かに >>216 で外部メモリって表現されていますね 勝手に内部フラッシュの事だと思い込んでレスしてました。重ね重ね申し訳ござません >>233 AVR=8bitってイメージが強すぎてAVR32の事は全く考えてませんでしたよw AVR32使うならARMコア搭載のマイコンの方が良いっていう声が多いですよね >>231 xmegaA1Uです。 基板作っちゃったけど、外部メモリ用のアドレスラッチをソフトで制御して、 内部空間64KBでやれば私の場合は何とか問題解決なんですけどね。あ〜めんどくさい。 PICでもR8でも問題は同じだけどどうやってるんだろう・・・ ARM使えとか言われそうだけど、バッファが要るだけで処理はしょーもないものなんで、 回路設計段階ではこんな苦労全く予想してなかった。 > ?RAM larger than 64 KiB is not supported by GCC for AVR targets. ドキュメントに書いてあるな。ご苦労さん。 8bitCPUのアドレスバスが基本16bitということ知ってたら苦労しなくて済んだのになwww 馬鹿めw >>235 xmegaですか。なるほど確かに仕様で24bitの外部アドレス空間をもっていますね ですがGCCが16bit超えの外部メモリアドレスには未対応みたいです https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html 既にご自分で対応策を施しているようなので、このまま開発を続けて良いと思いますよ 今回は私も色々と勉強になりました。逆にありがとうございました >>236 ああ、わざわざ調べてくれてありがとう。 なんだかんだ言って優しいんだね。その1行が見つけられなかったんだ。 “XMEGA” devices with more than 128 KiB of program memory and more than 64 KiB of RAM. mcu = atxmega128a1, atxmega128a1u, atxmega128a4u. とか書いてあったけどその下とはね。 IARではできるらしいんだけど残念。 >>237 もありがとう。 あ、だけど>>236 さ 『基本16bit』って自分で書いてるんだから『絶対16bit』なんて思い込みで書いちゃいけないよ。 xmegaは24bitアドレスサポートしてるけど、GCCは未対応だからごめんねって書いてるんだ。 そんなことわかりきってるから調べたけど、見つけられなかったのは私の間抜けw avr-gccは色々おかしいからあんま期待してはいけない 要望出すぐらいはした方がいいんだろうけど AtmelStudioでBuildするときに出るメッセージのDataMemoryUsageがSRAMの領域ですよね? スタックオーバーフローってSRAM領域に十分な空きがあったとしても起こりますか? とある関数を呼んでreturnするときに、異常動作が起こります。 その関数内では比較的大きな配列を宣言しており、この配列の要素数を減らすと正常動作しました。 したがってスタックオーバーフローが起こっていると予想しているのですが、DataMemoryUsageでは相当余裕があります。 スタックオーバーフローが起こる原因、またその対策をよろしければ教えてください。 そのDataMemoryUsageは関数内の変数は見積に入ってない 例えば関数が再帰呼び出しされていた場合、実行前に正確に見積もれるだろうか ちょっと考えれば判ることだと思うが >>243 すみません、言い方が悪かったようです。 SRAMの空きが2kバイト程度あります。(DataMemoryUsage) その関数ではchar c[256]と宣言しています。 このようにSRAMの空きが十分であると予想される(自分はそう思っています)にも関わらず、 スタックオーバーフローが起こるのはなぜか、ということでした。 再帰呼び出しは行っていません。配列の要素数を例えば64にすると正常動作となります。 ローカル変数で確保できる領域等がレジスタで設定出来たりするのでしょうか。 データシートを眺めた感じではスタックポインタを設定するレジスタはありましたが・・・。 >>244 関数呼ぶとき戻り番地をスタックにセーブするし、呼び元で変数として使っているレジスターを関数内で使っていればそれもセーブする。コンパイルのあとにできるアセンブラリスト見ればどうなってるかみられるからみてみれば。 > xmegaは24bitアドレスサポートしてるけど、GCCは未対応だからごめんねって書いてるんだ。 馬鹿かこいつ。 >>244 リンカ設定でheap領域が確保されてて、c[256]のときはそこに スタックが食い込んでるってことない? それなりに期待できそうな事が書いてある…が 安心するには程遠いという感触 あのロゴが有るだけでPICにしか見えなくなるってのに… だいぶ侵食されてきたな >>244 オプションとかで、スタック領域の割り当て増やすとか出来ないの? >>244 解決策を持ってなくて申し訳ないけど、 >>245 と同じくアセンブラ追ってみてはどうでしょう。 私も最近マイコン初めて、異常動作して、 問題の箇所直前からアセンブラコードでシミュしつつ、 スタックアドレスと変数追ってったらスタックオーバーが見つかりました。 自分のは単純なRAM不足でしたが、 アセンブラコードで計算しながら1ラインずつ流してくと何か見えてくるかもです。 もうやってたらすみません >>244 >その関数ではchar c[256]と宣言しています。 差支えがないなら(再帰で呼ばないとか、割り込みルーチンの中から呼ばないとか)、 その関数内での配列の宣言の前に、static を付けたら状況が変わらないでしょうか。 >ローカル変数で確保できる領域等がレジスタで設定出来たりするのでしょうか。 それはレジスタ設定ではなくてコンパイルオプションではないでしょうか? 実際にSRAMをどんだけ食いつぶすか調べるには、 init3辺りの初期化でSRAM全体を0x55とかで埋めて しばらく動かした後UARTとかでSRAM全体をダンプしてみれば判る つーかギリギリっぽい場合はいつもこの手で調べてる AVRをc++で開発してる人いる? 便利そうだなーと思いながらも手を出せないでいるんだけど、やっぱりスマートに記述できて便利ですか? まあ、プロジェクトにもよるんだろうけど… ArduinoがまさにC++なんだけどねえ よく言われるスケッチはC++の難解なところを隠蔽してるだけでその薄皮を剥がせば全部C++ 過去スレでも何回も繰り返された質問の1つかと >>261 せいぜいコメントで//使ったり、Serial.printみたく既存のクラスの静的メンバ関数を使うぐらいで 自分でクラスを書いたりしないのが大半じゃないの いわゆる「staticおじさん」ですら自分でクラスは書いてるので それ未満のこんな使い方だと「C++で開発してる」レベルに含まれないと思う 「そんな使い方だとxxxを使っているとは言えない」 みたいな表現は良く見るけれど、たいていは、xxxを使うことにネガティブな印象を与えようとしているだけのことが 多いように思います。 ライブラリをクラス化できるという、たったそれだけのことでもC++の恩恵は十分受けることができますし、 自分ではクラスを作らない人が、出来合いのクラスライブラリをライトに使っているとしても、 それはC++で開発しているからできることです。 リソースの貧弱なマイコンで、new/deleteを繰り返したり、仮想関数を使ったりすればしんどいのは当然ですが、 それができないないC++の意味がない、と断じるのもおかしい話で、使えるところから使えば良いと思います。 パシフィコ横浜でET/IoT TEchnology2016に行ってきた。 Micochipのブースを覗いてきたけど、ほとんどAtmelの出展で笑ってしまったわ。 マイコンの方もAtmelの32ビットを出していたり。 自分らの主力のマイコンなんか全然出してなかったよ。 >>264 へえ。そうだったんですか。 買収のあと、Atmel CPUの新規採用が減ったという話も代理店の方がされていました。 こういうのはたぶんMicrochipも望んでいないはず。 不安払拭に気合が入ってるようで個人的には嬉しい。 >>264 アトメルの32bit って、ARM だろ。 Atmelのブースへ行ってMicrochipのブースだと思い込んでたんだろw それくらい買収のショックがでかかったってこと Atmelのブースがあるかどうかは行ってなくてもわかりますね。 ttp://www.jasa.or.jp/expo/search/exhibitors_list.html Atmelの32ビットには独自コアのものとARMコアのものがありますが、>>264 さんが見たのはどっちだったのでしょうね。 ほんと君ら、AかBかどちらかしかないって思考なんだね。 普段それを求められてるからなんだろうけど。 >>267 いや、Microcipのブースだからそれまでの自社製品出してるのかな?って覗いて見たら Atmel製品ばっかりで笑ってしまったってこと。 まぁ、FreescaleとNXPが合併して新生NXPのブースは、 半々ぐらいで互いのマイコンだしてたのになぁ >>268 ARMですね。 いまどき、自社ブランド32ビットなんて国内メーカーでも出さないでしょ? 開発効率、環境など含めてアピールする価値なんてないと思いますよ。 かと言って、マイコンなんて趣味の世界でやってるぐらいで 本業は、全く異業種ですよ。 >いや、Microcipのブースだからそれまでの自社製品出してるのかな?って覗いて見たら >Atmel製品ばっかりで笑ってしまったってこと。 この文面からは>>270 =>>264 で、環境でIDが変わってしまう人かと思ったら別の人なのかな。 そのあとの>>271 のIDが>264と同じだし。 >>271 なんか斜に構えてません? それともあなたの個人の事情とMicrochipや産業界の話をごっちゃにされてます? メーカーが趣味や片手間でやっていることをETという場でメインでアピールすることはないですよ。 >いまどき、自社ブランド32ビットなんて国内メーカーでも出さないでしょ? でしょ、と同意を求められてもなあ、って気がします。ルネサスは相変わらずRXシリーズの新コアを出してますし。 価値がないなら出さないですよ。 とはいっても、ARMが主流になりつつあるのは(良いか悪いかは別にして)そんな感じではありますね。 >>272 ルネサスのは車の制御系に特化した、32bit だからな。 ARM 系もあって、こちらはアプリ系。 >>273 具体的に車の制御系のみに必要な要件って何? >>273 RXシリーズで車載向けってどれぐらいあります? 産業用はたくさんありますけど。 アプリ系とは、曖昧な言葉ですね。具体的には何を指してます? 実績/信頼性 -> 値段 -> 機能/性能 人名に絡むから、万が一の事があると とんでもなく高く付く 宇宙/航空/軍事/医療 程じゃないけど 車屋は それに次ぐ程うるさい ルネサスの車載用マイコンと言えばRH850だな。 製品紹介のページでも、そう書いているし。 https://www.renesas.com/ja-jp/products/microcontrollers-microprocessors/rh850.html NEC時代のV850がECUへの採用実績が多かったから、 そのまま後継機種として開発した物だったはず。 車載負けは基本は動作温度範囲とノイズ耐性だったかな。 >>274 最近だとCAN対応とか? 車用工作してるから、AVRでCAN通信したい 温度とノイズなんて車載用だからではなく、どんな分野でも要件あるんだけど。 > 車の制御系に特化した これを聞きたいんだが。 うちも去年車載用でARM→RH850のリプレースの仕事のオファーあったっけ 車載用でRH850って人気あるようね (1) いまどき、自社ブランド32ビットなんて国内メーカーでも出さないでしょ? →RXは?→ (2) ルネサスのは車の制御系に特化した、32bit だからな。 (3) ARM 系もあって、こちらはアプリ系。 →車の制御系に特化したって何?→答えられない →RXの車載向けってどれ?→答えられない →アプリ系って何?→答えられない (1)は実際は単なる認識不足でしかなかったのに。 >>284 (1)は、ここを参照 http://s.news.mynavi.jp/news/2012/10/23/107/index.html ってか、このぐらいは調べてわかる範囲だろ 12月にトロンの勉強会にルネサスくるから、直接聞いてみれば良い たしか、12/5〜3日間ぐらいやってる >>285 えらく前のニュースですが、今もなお、RXシリーズの改良版コアが出てきています。 しかし、ルネサスが非車載向けにオリジナルコアの32ビットマイコンを出しているのは 調べないとわからんものなのかなあと思います。 秋月のWEBサイトでもRXシリーズの基板ってときどきトップページに出てくるし。 >>271 さんは、RXを16ビットだと思っていたのかな? >>287 「ごめん。頭悪すぎだわ」は「すみません。反論できません」の意味ですね。 閉じたスレでは閉じた常識がまかり通るって奴だな。見ていて気持ち悪いスレだ すいません、AVRについて質問してください AVRでUSBがしたいのですが、USBするためのフレームワークのようなものは ATMEL(今はもうMicrochipですか)から出ていないんでしょうか? これがPICならMicrochip Application Liblary(通称「マル」)が出ていて この中にUSBのためのフレームワーク一式が入っているんですが、AVRには 同じようなものはないのでしょうか? >>292 microchipからUSB AVR Stackというのが出てる これがメーカ純正のframework ただ今はこれよりもLightweight USB Framework for AVRs、いわゆるルーファの ほうが広く使われてると思う。ルーファのほうがメンテナンスも盛んで 機能も豊富なんでmicrochipのフレームワークは忘れていい へぇそんなのあるんだ AT90USB162のサンプル改造してゴリゴリ書いてたよ ggっても、V-USBとArduino だらけで、なかなか目的の物に辿り着けない Arduino の弊害 >>286 R-CarとSynergyはARM 非車載は最近、Synergyを推してるようにみえるけど R-Carはおそらく、NVIDIAが出してる車載向けSoCのような用途のチップだと思う http://eetimes.jp/ee/articles/1611/08/news019_2.html >ADAS/自動運転向けには、制御系のマイコン「RH850」ファミリーと、 >情報処理系のSoC「R-Car」ファミリーを中心に、 >堅ろう性の高い自動運転のトータルソリューションが提供できるとした。 >自動運転向け半導体も、2020年のトップシェアを目指す。 カーエレクトロニクスの進化と未来 81 クルマのコンピューティング機能を高めたR-Carシリーズの狙い http://news.mynavi.jp/series/car-electronics/081/ 「Synergy」欧州でも手応え、FA向けIPも追加予定 http://eetimes.jp/ee/articles/1611/11/news055.html 成長に向けた切り札: ルネサス、「Synergy」の国内提供をスタート http://eetimes.jp/ee/articles/1512/08/news083.html >>297 俺(>>286 )は、ARM系を出していない、とは書いてませんよ。 それともアンカーを間違えましたか? 8bitCPUにUSBっていろいろバランス悪いからだろう。 >>299 フルスピードのHIDぐらいまでなら割と多いのでは? そのあたりの量産品は価格にも厳しそうだし。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる