アカウント名:
パスワード:
何故かというと、IoTなんですわ。(だと思う)
いろんなデバイスがジャンジャン出てきてますが、”対応”つっても単にLANポートが付いてるだけとか。添付のドライバもチップセットのメーカから提供されている試供品みたいなドライバそのまんまとか。結局ドライバから内製するハメに。
ハンドアセンブルやってた時代の化石化したオッサン大活躍中。「高級言語の出る幕じゃねーよ」
#かなり盛ってるけど、でもホント
ドライバ書く必要はあるとしてもアセンブラじゃなきゃダメって状況はそうそうないだしょ
組み込み用のマイコンにはCコンパイラでは吐かれることのない特定用途にちょっと便利な命令があったりしてな。
そういう命令をうまく使うとさくっと処理できる関数はアセンブラで書く。レジスタがうまく使い回せてasm 文で書ければそれでもいいけど。
いまどきはどこのマイコンメーカーも高級言語で書けることをアピールしてるし情報として古すぎるよ、おじいちゃん。
そういう部分はアセンブラで書いて、全体はCで書くってスタイルが一般的では?局所的にアセンブラを使ったからって、人気云々は関係ないような気がする。
MCUベンダ純正ツールだと大抵特殊命令に対応する組み込み関数(というマクロ)があるけどね。
「80系はCコンパイラがI/O命令を生成できないので関数呼び出しになるからハードウェアアクセスの効率が悪い」と主張する68系信者が近くにいたけどもう30年くらい前かな。それくらいの化石を久しぶりに見た気がした。
なんちゃってIoTだと、リソース(CPUパワー、記憶容量、おまけに使用可能な電力)がかなり限られてしまうから、アセンブラでガリガリせざるを得なかったり。
#Cのライブラリを作っても次の製品で使える保証ないし
I2Cで単純な機能の奴を使うのに、デバイスドライバなんか作らないってのは珍しくない。タイマーでポーリングするだけ、とか。
私もそこら辺りだと思うなあ。Cコンパイラ使えるターゲットなら、どうしてもアセンブラが必要なのはRTOSのそのまたコアのスレッドをディスパッチする部分くらい。ただ、弊社でも10年くらい前の組み込み機器はアセンブラで書かれてて、誰もメンテできないのでそろそろ作り直そうといている。
ぶら下げ間違えました。
#3045843 に対するコメントです。
そう思っていた時が自分にもありました。
ついこの前、WS2812BというLEDを買った。自分でドライバ書いてみたがタイミングが全然取れない。Adafruitのドライバがあったので中をカンニングした。
アセンブラで書かれていた。(#ifdef山盛りで)
あれはnop不可避だよな
身近では、ドライバサイズが数百~数kByteと言ったサイズ制限から、アセンブラを選ぶことが多いです。マイコン内蔵メモリに納める必要があって、サイズが大きいとマイコンのコストや電力が上がるので。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
一部方面ではバズワード扱いされていますが (スコア:5, 参考になる)
何故かというと、IoTなんですわ。(だと思う)
いろんなデバイスがジャンジャン出てきてますが、”対応”つっても単にLANポートが付いてるだけとか。
添付のドライバもチップセットのメーカから提供されている試供品みたいなドライバそのまんまとか。
結局ドライバから内製するハメに。
ハンドアセンブルやってた時代の化石化したオッサン大活躍中。
「高級言語の出る幕じゃねーよ」
#かなり盛ってるけど、でもホント
Re:一部方面ではバズワード扱いされていますが (スコア:0)
ドライバ書く必要はあるとしてもアセンブラじゃなきゃダメって状況はそうそうないだしょ
Re:一部方面ではバズワード扱いされていますが (スコア:2)
組み込み用のマイコンには
Cコンパイラでは吐かれることのない
特定用途にちょっと便利な命令があったりしてな。
そういう命令をうまく使うとさくっと処理できる
関数はアセンブラで書く。レジスタがうまく使い回せて
asm 文で書ければそれでもいいけど。
Re: (スコア:0)
組み込み用のマイコンには
Cコンパイラでは吐かれることのない
特定用途にちょっと便利な命令があったりしてな。
いまどきはどこのマイコンメーカーも高級言語で書けることをアピールしてるし情報として古すぎるよ、おじいちゃん。
Re: (スコア:0)
そういう部分はアセンブラで書いて、全体はCで書くってスタイルが一般的では?
局所的にアセンブラを使ったからって、人気云々は関係ないような気がする。
Re: (スコア:0)
MCUベンダ純正ツールだと大抵特殊命令に対応する組み込み関数(というマクロ)があるけどね。
Re: (スコア:0)
「80系はCコンパイラがI/O命令を生成できないので関数呼び出しになるからハードウェアアクセスの効率が悪い」と主張する68系信者が近くにいたけどもう30年くらい前かな。
それくらいの化石を久しぶりに見た気がした。
Re: (スコア:0)
なんちゃってIoTだと、リソース(CPUパワー、記憶容量、おまけに使用可能な電力)がかなり限られてしまうから、アセンブラでガリガリせざるを得なかったり。
#Cのライブラリを作っても次の製品で使える保証ないし
Re: (スコア:0)
I2Cで単純な機能の奴を使うのに、デバイスドライバなんか作らないってのは珍しくない。
タイマーでポーリングするだけ、とか。
Re: (スコア:0)
私もそこら辺りだと思うなあ。
Cコンパイラ使えるターゲットなら、どうしてもアセンブラが必要なのはRTOSのそのまたコアのスレッドをディスパッチする部分くらい。
ただ、弊社でも10年くらい前の組み込み機器はアセンブラで書かれてて、誰もメンテできないのでそろそろ作り直そうといている。
Re: (スコア:0)
ぶら下げ間違えました。
#3045843 に対するコメントです。
Re: (スコア:0)
そう思っていた時が自分にもありました。
ついこの前、WS2812BというLEDを買った。自分でドライバ書いてみたがタイミングが全然取れない。
Adafruitのドライバがあったので中をカンニングした。
アセンブラで書かれていた。(#ifdef山盛りで)
Re: (スコア:0)
あれはnop不可避だよな
Re: (スコア:0)
身近では、ドライバサイズが数百~数kByteと言ったサイズ制限から、アセンブラを選ぶことが多いです。
マイコン内蔵メモリに納める必要があって、サイズが大きいとマイコンのコストや電力が上がるので。