サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
shinta-main-jp.blogspot.com
あらまし 昨年のこと、NXP LPC824を使ったサウンドモジュールMicroSoundModuleを開発していました。このサウンドモジュールは、コマンドを受け取って色々な再生を行うもので、当初はこのコマンド処理部分の実装にNT-Shellを用いる計画でした。しかし、最小10KBのROM、最小1KBのRAMを要求するNT-ShellはNXP LPC824の小さなリソースに対して厳しいものです。仮に入ったとしてもアプリケーション側に大きな制約を課すことになります。 よくよく見まわしてみると、様々な面白そうなマイクロコントローラがNXP LPC824と同クラスで存在します。ARM Cortex-M0のような小さなマイコンを使ったシステムにおいて、NT-Shellほどの機能は要らない、でも、きっちり入力は出来るようにしたい、といったニーズはありそうです。 そこで、NXP LPC824のような小さ
あらまし お仕事で様々な立場の方とお話しする機会があるわけですが、以前からどの階層にいる人にも共通した「技術開発と製品開発とビジネス開発が同時に出来るのではないかという思い込み」を持っている方が非常に多い事に気付きました。 よくある混同で起きるマズい事 例えば、おぼろげながら自分達で考えている製品像が浮かんだとしましょう。この製品像は、それこそ具体的になっているものではありませんが、必要な機能や性能やインターフェースが何となく整理できた状態になっていたとします。そこで必要になる機能を実現するための技術的な要素は、少し頑張れば実現できそうな事ばかりで、さっそく製品開発をスタートする事にしてしまいます。 このシチュエーションで起きるのは以下です。 製品の機能を仕様にまとめる 仕様が好ましいものと判断され/判断し、計画をスタートさせる 仕様を満たす機能を実現できるように設計を開始する 設計が完了
Arduinoでも扱いやすくするために'A tiny MML parser'をアップデートしました (ついでにスーパーマリオも演奏してみました) Arduinoでも扱いやすくするために'A tiny MML parser'をアップデートしました。このアップデートにより、以下の動画で示すような長い曲でも難なく再生させる事ができるようになりました。お約束感が満載ですが、Super Marioのテーマ曲を演奏しています。 'A tiny MML parser'の公開直後、「A Day in The BAKA's Lifeさん」の「ARDUINOからA TINY MML PARSERを使ってみた」の記事によって、Arduinoを使った活用の御紹介を頂きました。 最初にライブラリを公開した段階では、Blackfin以外に具体的なターゲット・プラットフォームのイメージを持っていなかったのですが、この記
オペレーティング・システムを書くとなると、あのレジスタをこっちにやって、このレジスタをあっちにやって・・・とだんだん頭がわけわからなくなってきます。UOS-LPC800のスケジューラを書いている時も、Cortex-M0+の命令セットをどう使うのか頭を悩ませた気がします。もう忘れましたが。
先日から色々と思うことがあって、「割と適当に動作する」OSを作る事を考え始めました。 「割と適当に動作する」というのは、まぁ言ってみれば「オモチャとして動作します」という事です。 考えているOSは、リアルタイム性もないし、タスク間通信も最小限。 でも、自分が作ったからよくわかるという、その名も「誰得OS」です。 私の場合、ソフトウェアは基本的にインターフェースの設計から始めます。 この基本方針はOSになっても変わりません。 まずは「誰得OS」のインターフェースを考える事にしました。 「誰得OS」は、 daretoku_kernel_initでカーネル・オブジェクトを初期化。 daretoku_task_initでタスクを初期化。 daretoku_kernel_startでカーネルを動作開始。 と最低限3つのインターフェースを知っていれば動作させる事ができます。 「できます」と書いています
シンプルな制御モデル 昨年10月の投稿「ビデオやオーディオのDMAバッファの管理手法 (動かして遊べるソースコード付き!)」では、ビデオやオーディオなどを扱うファームウェアで、DMAバッファをどのように扱うと良いのかについて述べました。 先の投稿で上げた制御モデルは以下のようなシンプルなものでした。 この制御モデルは、巷でよく見かける配列のインデックスを使って制御する方法よりも抽象化が可能で、チャネル数の変更や遅延量の制御などを簡単に実現する事が可能です。
DMAバッファを管理する ビデオやオーディオのように絶え間なくやってくるデータの入出力を処理する場合、一般にDMAを使います。 システムの中において、バッファの状態は主に「DMA中」、「DMA完了」、「未使用」の3種類に分類する事ができます。 DMAは、リクエストを出してからバッファにデータが完全にやってくるまでに時間がかかります。 DMAのリクエストを出してから即座にそのバッファに対して処理を開始する事は通常しません。 ビデオやオーディオのDMAバッファの管理は、DMAを出してからDMA完了イベントを待ち、到着したデータに対して処理を始める事になります。 配列による手法 DMAバッファを管理する機構を実現する際によく見かけるのは以下のような配列を用いた手法です。 バッファや管理構造体を配列として保持し、何番目が「DMA中」、何番目が「DMA完了」といった具合にインデックスで管理する方法で
2011年11月27日日曜日 タダ同然で自分専用のバグ・トラッキング・システムを立てたい (レンタル・サーバー「ロリポップ」上にRedmineを仕立てる) タダ同然で自分専用のバグ・トラッキング・システムを立てたい 開発に欠かせないバグ・トラッキング・システムですが、以前から公開ウェブ・サーバー上に自分専用のサービスが欲しいなと考えていました。 自分が進行しているプライベートなプロジェクトの色々なアイデアやTODOをいつでもどこでも更新出来たら嬉しいなぁと考えたわけです。個人的にgithubやsourceforgeを使う事はありますが、バグ・トラッキング・システムを自分の好みで変更できないのが残念なところです。 また、プライベートなアイデアやプロジェクトが、ダダ漏れになるのも、それを避けるためにお金を払うのも、自分が好きなバグ・トラッキング・システムを使えない事と相まってお得な感じが
LPC11U14 LPCXpressoを使ってUSBを研究しよう! - USB研究部会 - (LPCXpresso週間) USB! USB! USB!以前の記事、LPCXpressoの放置を防ぐお勧め取り組み方法(LPCXpresso週間)では、放置を防ぐアイデアの1つとして「具体的な目標に繋げる」というものを挙げました。 今回はLPC11U14 LPCXpressoを使って、USBを研究する例を取り上げてみましょう。 LPC11U14の概要LPC11U14は最大クロック周波数50MHzのARM Cortex-M0をコアに持つNXPセミコンダクターズ社のプロセッサです。 LPC11U14の場合、内臓フラッシュは32KB、SRAMは6KBあり、そのうち2KBがUSB用となっています。 GPIOは40本、ADCも8チャンネル搭載されており、USBも接続できるため様々な応用例が考えられます。 ま
概要 先日の記事で勢いよく「改良しました!」と宣言したh8writeですが、やっぱり書き込みに失敗するという事がわかりました。 そもそも真の原因を掴めないまま改良したと言っても、何を改良したのか意味がわかりません。 自分でもそんな突っ込みを入れたくなるのですが、その日はグングン快調に書けていた上、オリジナルで実行するとやっぱり書けないという状態で、完全に勘違いモードに突入していました。 既に行く先の見えているH8/3069Fに肩入れするつもりはなかったのですが、KOZOS本(と著者!)が楽しくて仕方がないのと、宣言して出来なかった悔しさから本格的に問題を追及すべく、データーシートを片手にh8writeのソースコードを本格レビューしていくことにしました。 判明した事実 データーシートのプログラミングシーケンスを数分眺めていて、すぐに気付いたことがあります。 先日までは、プログラミングシーケン
2014/11/02追記。 公開サイトを変更しています。以下から最新版をダウンロードできます。 http://www.cubeatsystems.com/firmware/ntshell/ntshell_ja.html CQ出版社の月刊誌インターフェース2013年1月号に記事を書きました。 http://www.kumikomi.net/interface/sample/201301/if01_174.pdf インターフェース2013年1月号のソースコードは、CQ出版社のダウンロードサービスで入手できます。 http://www.cqpub.co.jp/interface/download/contents.htm TOPPERS活用アイデア・アプリケーション開発コンテストでの資料はこちら。 https://www.toppers.jp/docs/contest/presen2011_Na
= 謝辞 = TOPPERS/ASP for LPCは@suikan_blackfinさんによってポーティングされました。 氏は様々な鋭い洞察力で過去にも沢山の偉業を成し遂げている方です。 ここに過去の沢山の偉業を挙げることは出来ませんが、素晴らしいポーティングに感謝すると共に、厚くお礼を申し上げます。 ありがとうございます。 氏のウェブサイトはhttp://d.hatena.ne.jp/suikan+embedded/にあります。 また、LPCXpressoはNXPセミコンダクターズジャパンさんが積極的に国内市場への展開を行って下さっています。このような安価で優れたツールを手に入れることのできるのは、嬉しい限りです。 NXPセミコンダクターズジャパンさんが運営されている日本語サイト(LPCZone)はhttp://www.nxp-lpc.com/cgi-bin/linkv.htmlにあり
eLuaとはLuaプログラミング言語のフル実装版を組み込みの世界に持ち込むというもの。 Embedded Luaを略してeLuaと呼ばれています。 従来、スクリプト言語をマイコンに移植する場合、機能を削減した仕様で実装されることが多いのですが、eLuaは「フル実装」が一つの特徴になっています。 これによって例えば、パソコン上である程度の機能を実装した後で、ターゲットデバイス上で最終的なデバッグをするなど、様々な開発スタイルをとることもできます。 今回はeLuaをソースコードからコンパイルして実行させてみることにしました。 ホストの環境はUbuntu 10.10を使用しました。 まずはソースコードをSubversionリポジトリから取り出します。 svn checkout svn://svn.berlios.de/elua/trunk ビルドにはmakeではなく、sconsを使います。 Ub
どうやったらもっとまともにソフトウェアを書くことができるようになるのか? 僕も若い頃、いや、まだ若いんだけど、本当にどうやってソフトウェアを書いてゆけば良いのかわからなくて、とにかくダラダラダラダラダラダラダラダラ「きっとやらなくてはいけない処理」を羅列したものだった。それも膨大な量のコードを。 ・・・と書こうと思ったのだが、実は自分自身はそうではなかった。 以前書いた「アセンブラでこんなに美しく書ける方がいるんだ!」という純粋な感動体験が完全に邪魔をして、職業でソフトウェアを書く時に美しさに何かの美学を見出していた若かりし自分は、とにかくいかに美しく問題を解決するのか?についてひたすら毎日考えていた。このおかげで、人よりも余計な苦労をしなくてはならなかったのと、まだ若かった自分には設計や実装に関する知恵も知識もなかった上に余計なことに思慮を巡らせるものだからとにかく時間がかかっていた。本
このページを最初にブックマークしてみませんか?
『CuBeatSystems』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く