X



トップページ電気・電子
1002コメント378KB
【Cortex-】 やっぱARMっしょ part10 【AxRxMx】©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001774ワット発電中さん 転載ダメ©2ch.net
垢版 |
2015/10/05(月) 22:31:21.62ID:/ZKA4LDM
ARMデバイス、ARMボードについて組込系ARM全般のスレ

時代は「やっぱARMっしょ」
省電力ニーズの高まりを背景に海外チップベンダーはもとより国内勢も参戦
ホビーとしてのマイコンからスマートデバイス用プロセッサまで
ARMコアを持つチップやボードのラインナップは今まさに百花繚乱

【前スレ】
【Cortex-】 やっぱARMっしょ 9 【AxRxMx】
http://wc2014.2ch.net/test/read.cgi/denki/1399381482/
0102774ワット発電中さん
垢版 |
2016/01/29(金) 08:58:15.82ID:fsEf2ks2
>>100
CPU、MPU、MCU・・・全部別ものだと思ってる初心者向きなんだから流せよw
0103774ワット発電中さん
垢版 |
2016/01/29(金) 09:23:31.67ID:EHgKvqoC
マイクロコントローラ って名称は主力のメインプロセッサーではなく周辺機器向けの汎用コントローラとして企画されたような
面積が小さくピン数が少なく廉価なワンチップ・マイコンでしょ。
IBM PCキーボードの内蔵コントローラとして使われたi8048/8049とか、マウスみたいのに入ってるPICとか
あとEIDE内蔵ハードディスク・ケースのSCSIインタフェースに使うH8とか
0104774ワット発電中さん
垢版 |
2016/01/30(土) 09:00:32.07ID:uloNz4bm
>>100
バスの話だから
まぁ紛らわしいからプリンストン・ハーバードって言い方もあるけどな
0105774ワット発電中さん
垢版 |
2016/02/10(水) 02:00:32.96ID:+ZQLn4yo
興味深い情報を発見。

http://keikato.cocolog-nifty.com/blog/2016/02/ascii-c323.html

http://keikato.cocolog-nifty.com/blog/2016/02/usbaki-80basic-.html

> Z80換算でIchigoJam 1.1.1の性能は6MHz、
> ORANGE pico 0.7以降は120MHzと言えそうだ。

IchigoJam は LPC1114FN28 だから ARM Cortex-M0 の 48MHz、
ORANGE pico は PIC32MX だから MIPS32 M4K 40MHz

プロセッサの演算能力に大きな差は無いはずなので、
BASICインタプリタの完成度が激しく違うと思われる。

もっとも IchigoJam の LPC1114FN28 はRAMが4KBしかないので、
高速化したくても出来ないのかもしれないが。


そういえば、以前にも IchigoJam は遅いという話は出ていた。

http://wc2014.2ch.net/test/read.cgi/denki/1399381482/808-
0106774ワット発電中さん
垢版 |
2016/02/10(水) 04:03:53.19ID:MeTF/xU8
>もっとも IchigoJam の LPC1114FN28 はRAMが4KBしかないので、
>高速化したくても出来ないのかもしれないが。

馬鹿ですか??
0107774ワット発電中さん
垢版 |
2016/02/11(木) 00:16:31.69ID:bodYe1W3
BASICマイコンでユーザープログラム領域が4KBというのは非常に狭い。
実際にはBASICインタプリタのワーク領域にも使われるので更に狭い。

だだでさえ少ない領域を高速化の為に費やして
ユーザー領域が更に狭くなってしまうと本末転倒なので
RAM消費を増やさない改良方法があるか
という事だろう。
0108774ワット発電中さん
垢版 |
2016/02/11(木) 12:55:07.75ID:XLVu0lMd
M0は命令バスとデータバスが分離していないから元々遅い
しかも20MHz以上ではフラッシュ読み出しにウエイトが入る無策設計
RAM容量以前の問題
0110774ワット発電中さん
垢版 |
2016/02/11(木) 13:24:46.87ID:VniNYkKv
確か、palo alto tiny basic移植の場合
16MHzのAVRでもZ80換算40MHz相当ぐらいは出るんだがなぁ…
0111774ワット発電中さん
垢版 |
2016/02/11(木) 13:59:04.06ID:0N/MJ+Hu
>>105
「興味深い記事を発見」ってか、おまえがブログ主でしょ
猫うごくgifうざったいからやめてくれ。ま、もうadblockに放り込んだからどうでもいいが
ベンチ結果そのものよりも未だにaki-80使ってる奴がいたことにびっくりだよ。しかもtiny basicでww
0112774ワット発電中さん
垢版 |
2016/02/11(木) 17:54:27.95ID:bodYe1W3
>>108
Cortex-M0に関するARM社からの発表値は 0.9 DMIPS/MHz.
PIC32MXについては 1.65 DMIPS/MHz
フラッシュ読み出しのウエイトの影響が追加されると
同一クロックで2、3倍ほどの差はあり得る。

だけど、BASICのベンチマーク結果では20倍もの差があるので、
どう考えてもインタプリタの出来が主要因なのでは?
0113774ワット発電中さん
垢版 |
2016/02/11(木) 18:52:37.66ID:prpScUvz
秋月から同じ値段でSTM32 Nucleo Boardが出てきたけど
どれを買っとけば無難かな。。
0114774ワット発電中さん
垢版 |
2016/02/11(木) 19:53:51.79ID:0N/MJ+Hu
ちょっとわろたw
ttps://www.google.co.jp/search?num=100&q="keikato.cocolog-nifty.com"+site%3A2ch.net
0117774ワット発電中さん
垢版 |
2016/02/11(木) 20:22:17.95ID:r2zbvzWN
>>107
むか〜し、むかし、ROM無しの4kB RAMでBasicインタプリタを走らせていた時代がありまして…


…めでたし、めでたしw
0119774ワット発電中さん
垢版 |
2016/02/15(月) 13:57:21.90ID:A17vS3ag
https://twitter.com/yo_namikaze/status/640892899018735616
> FOR 3000回ループ
> Cortex-M0 48MHz IchigoJam BASIC 1.0.1→7.6秒
> Z80 4MHz SB-5520(MZ-80B実機)→約2秒

昔の8bitマイコンより遅いってのはかなり遅いね。
0120774ワット発電中さん
垢版 |
2016/02/15(月) 14:44:02.66ID:A86BPt+y
RAMが足りないから毎回テキストから数値や命令に解読してんのかな
0121774ワット発電中さん
垢版 |
2016/02/15(月) 15:12:03.37ID:z4kAo8zN
basicによるけど、毎回テキストでしょ

この手のbasicはすっごく単純なフローチャートで表現できる実装だけのが多いよ
最適化とか高速化とは無関係な世界
ram消費を抑えるというよりはむしろromを抑えるのに重点置いてるんじゃないってくらい
0122774ワット発電中さん
垢版 |
2016/02/15(月) 19:36:17.23ID:OLE8fwHU
>>121
どこかのスレに書いてあったが
ビデオアウトやらペリフェラルもM0でやってるので遅くなるのでわと
0123774ワット発電中さん
垢版 |
2016/02/15(月) 20:47:46.76ID:v+1V5orz
たしか、video処理を停止する命令があるはずだから、一度比較したいな
0125774ワット発電中さん
垢版 |
2016/02/15(月) 21:38:28.13ID:z4kAo8zN
何をやりたいのかさっぱりだけど実行速度あげたいならC使えとw
純粋にハードの速度比較したいならアセンブラ(C含む)でやったら?
basic比べたいなら、アセンブラのループとbasicのループでみたら?
0126774ワット発電中さん
垢版 |
2016/02/15(月) 21:56:15.68ID:A17vS3ag
> 実行速度あげたいならC使えとw
> 純粋にハードの速度比較したいならアセンブラ(C含む)でやったら?
> basic比べたいなら、アセンブラのループとbasicのループでみたら?

ダッセエ実装してんなあという話に対して何言ってんだかw
0127774ワット発電中さん
垢版 |
2016/02/15(月) 22:01:27.95ID:z4kAo8zN
それだったらアセンブラとbasicのループ速度比とかを見るべきでしょ
異機種間でのbasic速度だけを見てるから>>122みたいな影響を排除できてないわけで
0129774ワット発電中さん
垢版 |
2016/02/15(月) 23:06:26.12ID:A17vS3ag
> それだったらアセンブラとbasicのループ速度比とかを見るべきでしょ

なんで??
0130774ワット発電中さん
垢版 |
2016/02/16(火) 00:17:52.70ID:3Wq0xOKj
>>127
> 異機種間でのbasic速度だけを見てるから>>122みたいな影響を排除できてないわけで

画面は消して、あとキーボードだろ? どんだけ影響がある可能性があると思ってる?

4MHz の Z80 と較べて最大 50MHz で動作する LPC1114 ってクロック速度だけでも
10倍以上、1命令辺りの実行に要するサイクル数や個々の命令の機能を考えると
処理能力的には 2桁程度は違う計算になるので、

> FOR 3000回ループ
> Cortex-M0 48MHz IchigoJam BASIC 1.0.1→7.6秒
> Z80 4MHz SB-5520(MZ-80B実機)→約2秒

画面消して 3倍速くなったとしてもどう考えても遅杉だろ。
0132774ワット発電中さん
垢版 |
2016/02/16(火) 00:59:13.37ID:3Wq0xOKj
>>131
PS/2キーボードのシリアル通信なんて〜10kbpsとかそんなもんだから、
NTSCの水平同期 2回に1回のタイミングで割り込み処理を行うとか
そんなもんだろう。負荷なんて多寡が知れてる。
0133774ワット発電中さん
垢版 |
2016/02/16(火) 01:32:20.92ID:3Wq0xOKj
> PS/2キーボードのシリアル通信なんて〜10kbpsとかそんなもんだから、

Wkipedia みたら

https://en.wikipedia.org/wiki/PS/2_port
> Serial data at 10 to 16 kHz

とあったんで訂正しておく。何れにしろ負荷としては大したもんではない。
0134774ワット発電中さん
垢版 |
2016/02/16(火) 09:00:16.73ID:or5VFRXI
>>133
I/Fの通信速度からは割り込み処理がクソかどうかまでは判別できない。
問題の起きない範囲でベクターテーブルを潰して調べるのがいい。
同様にインタプリタがクソかどうか判別するには >>127 をした方がいい。
0135774ワット発電中さん
垢版 |
2016/02/16(火) 12:43:04.49ID:3Wq0xOKj
「割り込み処理の実装がクソ」という説にはなんら根拠がないので考察に値しない。
0136774ワット発電中さん
垢版 |
2016/02/20(土) 07:02:40.65ID:uvaGPO9R
>>132
大抵、DMAで、RAM から画像データ転送してるから、アクセスがぶつかると、処理がまたされる。
0137774ワット発電中さん
垢版 |
2016/02/20(土) 13:22:23.96ID:IPDIjnqM
>>136
画面消して処理が3倍くらい速くなることは既出なんだけど何言ってんの?
0138774ワット発電中さん
垢版 |
2016/02/23(火) 08:58:37.47ID:t5SxUUlV
逆汗してみた。
インタプリタの文字判別で1文字拾う毎にスペース除外とかしてて遅いね。
中間コードに変換するくらいの事でもすればいいのに。
0140774ワット発電中さん
垢版 |
2016/02/24(水) 18:59:52.36ID:z0E+qn6/
https://twitter.com/u_akihiro/status/701218592814006272
> Cortex-M0 で int8_t data = 0xff; if(data == 0xff) {呼ばれるべき処理;}
> が呼ばれない。アセンブラで見るとdataはintの0xffffffffと比較されて
> 不一致と。

↑のおかしいところを正しく指摘できればC言語初級。
0143774ワット発電中さん
垢版 |
2016/02/25(木) 01:08:36.61ID:y90Kzye9
> アセンブラで見るとdataはintの0xffffffffと比較されて
> 不一致と。

dataの値はintの値との比較にあたってintへ昇格され0xffffffffと評価され
intの値0xffと比較されて不一致、が正解。
アセンブラで見たというのも疑わしいな。
0144774ワット発電中さん
垢版 |
2016/02/25(木) 08:03:12.60ID:3Qzr3cpK
比較するときはマスクするのが常識だし、ベーシック()なんて使わないのが常識ってこと
0146774ワット発電中さん
垢版 |
2016/02/25(木) 21:48:10.54ID:y90Kzye9
元のプログラムが何したいかわからんので正解とは限らんが、
小さい符号付整数として使うために data の型に int8_t を
選んでるのだとしたら直値で 0xff なんて書かないで

if(data == -1) {呼ばれるべき処理;}

とするべきだろうし、0xff に何か特別の意味があるなら
それに名前を付けて int8_t なんて使わずに

const uint8_t Nanka = 0xff;

uint8_t data = Nanka;
if(data == Nanka) {呼ばれるべき処理;}

とかするだろうし、記憶領域をケチりたいとかの事情がなければ

typedef enum {Nanka = 0xff, Kanka} NankaType;
NankaType data = Nanka;
if(data == Nanka) {呼ばれるべき処理;}

とかやったほうがより安全。
0147774ワット発電中さん
垢版 |
2016/02/25(木) 22:39:52.48ID:y90Kzye9
>比較するときはマスクするのが常識だし、

こんな常識は聞いたことないし、

>ベーシック()なんて使わないのが常識ってこと

常識以前に何言いたいのかわからん。
0148774ワット発電中さん
垢版 |
2016/02/26(金) 09:06:56.81ID:vXu3NrnC
そういう符号拡張の罠があるからunsignedばかり使うようになったとさ
0149774ワット発電中さん
垢版 |
2016/02/26(金) 19:28:28.98ID:Qft/gOSm
そのひと言ってることがふわふわだから余りさわらないほうがいいかも
0150774ワット発電中さん
垢版 |
2016/02/28(日) 01:36:27.77ID:q2xbA1Ov
ハードウェアはゴミといっている人間がゴミなので笑えない
0151774ワット発電中さん
垢版 |
2016/02/28(日) 02:54:23.23ID:jz1Hxb2Y
そりゃ、ハードウェアは最終的には処分場行きなんだけどさ。
0153774ワット発電中さん
垢版 |
2016/02/29(月) 12:07:54.57ID:Unik6s51
この人、ブッチブチといつも文句ばっかり呟いてるよね。
日本がダメだとかハードウェアはゴミだとか、資本主義が労働がどうとか。
他人の作ったIoTデバイスがダメで、他人の作ったBLEがダメなんだろ。
お前が作ったハードウェア以外はゴミなんだろ。
特に小さな会社がネットにつながるハードウェアを作るとさんざん扱き下ろす。
お前はいったい、何円の資本集めてどんだけでかいことやったんだ。
まさに事業に失敗した中年。哀れに思えてくる・・・
0156774ワット発電中さん
垢版 |
2016/03/15(火) 11:20:17.45ID:REXG4Acm
>>153
おまい、誰と戦っているんだ?
0157774ワット発電中さん
垢版 |
2016/03/19(土) 12:25:38.02ID:atKGBSGc
本人乙
0160774ワット発電中さん
垢版 |
2016/04/17(日) 02:43:22.02ID:PE8srA9B
age
0161774ワット発電中さん
垢版 |
2016/04/17(日) 17:51:53.96ID:8rCB9tbi
CooCoxの中の人が息してないっぽい

ttp://www.coocox.org/download/Tools/
0163774ワット発電中さん
垢版 |
2016/04/18(月) 14:02:15.06ID:nxPFtU0f
nucleo F446 + eclipse で環境構築中のARM初心者の者です。
新規プロジェクトLチカサンプルプログラムのPLL設定のところ
stm32f4xx_hal_rc_ex.c ファイルの1710行と1976行でassertに引っかかっちゃうんですよ。
ちなみに基板のバージョンはC3、デバッガの8MHzをバイパス→PLL設定して入力してます
ちなみにこの2行をコメント化すると、デバッグコンソールに168MHzと表示されて動き出すけど
なんか微妙に時間が合っていない(じょじょに時計の秒針とズレてく)。
どこかで基本的なミスをしてるのでしょうね、多分。
ググッても情報が少なくて困ってます。
0165774ワット発電中さん
垢版 |
2016/04/24(日) 00:17:38.17ID:E0q08eUs
英語が苦手で英語のマニュアルを読みたくないから聞きに来てるんじゃねーの?
それをマニュアル嫁とかもっと空気読んだアドバイスが欲しい罠
0167774ワット発電中さん
垢版 |
2016/04/24(日) 05:08:46.51ID:E0q08eUs
おんなじ環境ないし、揃えてやる義理もないんで一般的な話になるけど
例えば、1710行目の
assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState));
は、IS_RCC_HSE()マクロがfalseを返してきているのでそれを調べる。
すると、stm32f4xx_hal_rcc.hに、
#define IS_RCC_HSE(HSE) (((HSE) == RCC_HSE_OFF) || ((HSE) == RCC_HSE_ON) || \
((HSE) == RCC_HSE_BYPASS))
な記述が見つかる。
>>163の環境でRCC_OscInitStruct->HSEStateに何が入っているのか知らないが、それは
RCC_HSE_OFFでもRCC_HSE_ONでもRCC_HSE_BYPASSでもない別の何かだということがわかる。

ソース追っかけてもいいし、デバッガでアサート直前で止めて値を見てもいいし
何が入っているのか確認すればそれで何を入れればいいのかおのずとわかるはず。

ちなみに、それぞれの値は
#define RCC_HSE_OFF ((uint8_t)0x00U)
#define RCC_HSE_ON ((uint8_t)0x01U)
#define RCC_HSE_BYPASS ((uint8_t)0x05U)
と定義されているが、ここまでたどれないようなら、日本語マニュアルが充実している
ルネサスの石でも使った方がいいと思う
0168774ワット発電中さん
垢版 |
2016/04/29(金) 01:24:05.03ID:iFOqNJ2o
秋月でDIPのLPC1114FN28大幅値上げ。

SOIC使うからいいけど、こんなに上がるものなのか?
0170774ワット発電中さん
垢版 |
2016/04/29(金) 07:57:14.66ID:AGLCsvg4
>>168
高っ!
なんなの
140円くらいだったのに
600milなんて安くなければ使わんわ
0172774ワット発電中さん
垢版 |
2016/04/29(金) 09:04:54.29ID:AGLCsvg4
LPC1114FN28はmbedでかろうじて息してるけど下火だろもう
300milだったら次世代のATMEGA328P的なポジションを確立できたかもしれないのに
NXPもバカだなあ
0174774ワット発電中さん
垢版 |
2016/04/29(金) 12:08:23.45ID:wzE0/ME4
>>173
ディスコンがなんぞのもんや(笑)、俺は採用するぜ。
(ディスコンすれば再設計の仕事が…。あぁ、ありがたや、ありがたやwww)

無論、他の部品も見直してコストを下げ、顧客にもメリットがあるようにするけどね。マジ
0175774ワット発電中さん
垢版 |
2016/04/29(金) 12:18:55.99ID:M+KXY9Xa
ディスコンになっても適当な下駄を適当に作って差し替えが簡単にできるそれが600の利点だろ
0177774ワット発電中さん
垢版 |
2016/04/29(金) 12:48:42.73ID:wzE0/ME4
>>176
ディスコンが先に分かれば使わないさ。設計時の責任問題になっちまう。

デジタル系はサイクルが早いから、発表から5年経過したら避ける。
それでも予想外の部品がディスコンになるから…
0178774ワット発電中さん
垢版 |
2016/04/29(金) 13:03:13.97ID:wzE0/ME4
チラ裏
設計から2年も経過すると、ょり良い部品や回路構成が分かって、より安く作れるんだよね。
0179774ワット発電中さん
垢版 |
2016/04/29(金) 13:18:00.59ID:mUICLOqG
>>176
だよねー
うちもそうだが専任の部署があって認定してもらわないと使えない
認定時はディスコンの可能性やセカンドソースとかも確認するし
0180774ワット発電中さん
垢版 |
2016/04/29(金) 17:47:12.56ID:ph9nEK+T
>>179
セカンドソース?
あるにはあるけど、かなりの汎用部品でないと無くね?
あと、当たり前だけど微妙に特性が違うし。
0181774ワット発電中さん
垢版 |
2016/04/29(金) 18:36:05.27ID:mUICLOqG
>>180
ん?
できるだけ汎用部品に誘導する
って言うのもそう言う部署の役目だよ
セカンドソース用の部品も評価するし、極端な話ピン配置が異なるセカンドソース用のパターンをあらかじめ引いておく
なんてことも提案したりする
0182774ワット発電中さん
垢版 |
2016/04/29(金) 20:28:12.13ID:v/+kvB//
マイクロチップ製のARMでないかな
ディスコンの心配なさそうだし
0183774ワット発電中さん
垢版 |
2016/04/29(金) 20:38:16.32ID:M+KXY9Xa
16F84がディスコンでAになって仕様vcc下がった恨みは未だに覚めない
0184774ワット発電中さん
垢版 |
2016/04/30(土) 00:12:12.31ID:cRYPZlPg
>>182
ARM(Cortex-M)はAtmelとSTが強いけど、最近Atmelがマイクロチップに買収されたから、でてるといえばでてる。
0189774ワット発電中さん
垢版 |
2016/05/08(日) 01:07:02.64ID:9dsgQjam
STM64とかもここでいいの?
0190774ワット発電中さん
垢版 |
2016/05/08(日) 06:20:52.82ID:7ZvTgUMf
いいけどここの過疎っぷりは異常
どこかフォーラムを見つけてそっちに行った方がいい
0191774ワット発電中さん
垢版 |
2016/05/09(月) 12:36:00.28ID:g3kZzr90
教えてください。

NXPとかから「新しいARMマイコン出たよ〜」というメールが来るのですが、
これらに使うコンパイラー(ツール?)は、何を使うのでしょうか? というか
フリーで出ているのでしょうか?

マイコンはPICで、MPLABで、XC16で・・・と、フリーで全部できるのですが、
ARMの場合はどうなのかしら、と思ったのです。
   PICマイコンより、電気喰わないし、速度は速いし、ROM/RAMも多いし、周辺も充実だし
   いいことづくめなので、乗り換えてもいいのかな?と思うのです。
   そもそも、チップはどこで買うのか?という問題は残るんだけど。
0192774ワット発電中さん
垢版 |
2016/05/09(月) 13:16:44.05ID:+5BwBtFy
チップはdigikeyで探せば、どれを選べば良いのか悩むくらいたくさんある。
ツール類はgcc/LLVMなどでそれこそLinuxみたいなOSまで作れる/デバッグ
できるようなツール類が完全に揃っている。
LaunchPad(https://launchpad.net/gcc-arm-embedded
あたりも人気あるのでは?

ただ、特定のメーカさんなら、たいてい、それぞれのメーカさんのところで
フリーの開発環境が提供されているし、とっかかりはそっちの方が
楽かもしれない。
0193774ワット発電中さん
垢版 |
2016/05/09(月) 15:46:02.40ID:g3kZzr90
>>192
ありがとうございます。
デジキーですね。海外通販、ドキドキです。見てみます。

恥ずかしいのですが、英語が高校で暮らす最下位で止まっていますが、
やっぱり、え、え、英語ベースですよね?
   (PICは、CQなどの本も日本語があり、僕の味方なんですが)
0194774ワット発電中さん
垢版 |
2016/05/09(月) 22:29:32.19ID:UhYDF4CI
IARなどであれば、マニュアルやヘルプを含めて日本語化されていますね。
その他の各メーカさんでも資料やチュートリアルなどの日本語版もある
でしょう。
もっとも、CQの本などでも全てを取り上げることは不可能ですし、
日本語マニュアルそのものもやはり英語版よりも古かったりします
(オリジナルが英語版ですし、翻訳にもお金も時間もかかるので、
仕方ないですが)ので、英文マニュアルを読むほうが良いですけどね。
0195774ワット発電中さん
垢版 |
2016/05/09(月) 22:39:37.76ID:4X/6uVB7
最近LPC810で遊び始めた者ですが
LPCXpressoで開発してます
僕のLPC810工作ノートが結構解りやすかったですよ
LPCOPENとLPCCLOSEとの違いを理解するまで大変だったけどね
ARM始めるならLPCXpressoかmbedだと思いま
0200774ワット発電中さん
垢版 |
2016/05/10(火) 18:51:07.19ID:3qsG6sbe
RaspberryPiだとlinuxだから雰囲気違うよな
デバグもセルフだし
IARとかMDKがラズπにつかえるのかしらん

MDKちょっと使ってるけど快適でとっても欲しくなるぞよ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況