/home/tnishinaga/TechMEMO

日々行ったこと、面白かったことを書き留めます。

2014-01-01から1年間の記事一覧

mbed LPC1768でWatchDogTimerを扱う

mbed LPC1768でWDTを使う方法を調べたので、備忘録として記す。 リファレンス LPC176x/5x User manual WDTとは Watch Dog Timer、直訳で番犬タイマー。 マイコンの暴走や無限ループに陥った際、強制的にリセットをかける機構。 WDTはカウントダウンタイマー…

Macでmbedをデバッグする方法についてのまとめ

mbed Advent Calendar 2014の11日目です。 まえおき mbedとの関わり 現在私はmbedのプログラムを アセンブリ言語でコードをゴリゴリ実装して、バグを作っては治すを繰り返す日々をおくっています。 デバッガは必須 アセンブリ言語はCに比べて低級な言語なの…

MacにPyOCDをインストールする方法について

先日mbed用のコンパイル環境を作る方法を解説した際、PyOCDのインストール方法については省略した。 mbedのオフラインコンパイル環境を作った - Toshifumi Nishinagaの技術めも その理由はPyOCDがLinuxとWindowsにしか対応しておらず、Linux上でのインストー…

mbedのC++コードからCやアセンブラの関数を呼び出す

GCCを用いてC++のファイルからCやアセンブラで定義した関数が呼び出せない問題に引っかかったので、解決方法を記す。 解決方法 ヘッダなどでの関数定義に、以下のように "C" を入れるだけ。 extern "C" void hoge(void); これだけでCやアセンブラの関数を呼…

Mac上にAVRマイコンの開発&書き込み環境を作った

AVR

AVRマイコンとはお手軽マイコン開発ツール群Arduinoに使われているマイコンである。 今回はATMEGA2560を用いる必要があったので、マイコン基板にはArduino MEGA2560を用いた。 書き込み器はAVRISP mk2を購入した。 開発環境の構築 基本的には、橋本商会さん…

mbedのオフラインコンパイル環境を作った

mbedとは、お手軽マイコン開発ツール群であるArduinoのARM版のようなものである。 オンラインのIDEを用い、mbedライブラリとユーザーの公開しているライブラリを用いてお手軽に開発を行うことができる。 しかし、デバッグはオンラインでは行えない。 デバッ…

Macでcrosstool-ng使ってARMの開発環境をつくろうと奮闘したが力尽きた話

背景 タイトルそのままなので省略。 なお、crosstool-ngのインストールにはhomebrewを用いた。 $ brew install crosstool-ng crosstoo-ng version $ brew info crosstool-ng crosstool-ng: stable 1.19.0 http://crosstool-ng.org /usr/local/Cellar/crossto…

MacBookPro(early2011)のHDDをSSDにした

自宅でメインに使っているMBPの動作が遅すぎて遅すぎて仕事にならないのでこれを機に買い換えたかったのですが、 まるまる買い換えるほどお金の余裕がないので、HDDをSSDに換えることで高速化を図ることにしました。 今回購入したSSDは以下。 SanDisk SSD Ul…

TFTPサーバーから相対パスでファイル取得できない問題について

著書「BareMetalで遊ぶ Raspberry Pi」追記のため、U-Bootを使ってプログラムをネットワークブートさせながら開発しようとしたのですが、RasPiがプログラムを拾ってこれずにこけてしまいました。 試しにログを吐かせてみると、こんなエラーが出ていました。 …

Linuxでcoredumpを吐く

C言語でメモリ関連のバグを作ったときは普通coredumpを読んで調べて行くみたいだけれど、私の環境ではなぜかcoredumpが出ませんでした。 調べて見ると、最近のLinuxではulimitで設定しないとcoredumpを吐いてくれないらしい。 デバッグ/コアダンプ - S.T.K W…

Elecrowの基板発注サービスが安くなってた

以前記事を書いた時は、10cm x 10cmで23ドルしていたはずですが、いつの間にか11.90ドルのプランができていました。 Special Offer For 2 Layer 10*10cm max green PCB - 5/10pcs [SPF11010S] - $11.90 : Elecrow bazaar, Make your making more easy 10枚で…

Raspberry Pi Type B,B+どちらでも使える拡張ボードを製作中

現在、達人出版会で絶賛発売中の著書「BareMetalで遊ぶ Raspberry Pi」の開発に便利な治具を作ってます。 機能はJTAG、SPI、I2C、UARTを引っ張りだして、ついでに使用しているキャラクタ液晶とか温度センサーが載せられるようなかんじで。 モデルはType BとT…

ThinkPad X201のキーボードをUSキーボードに交換した

開発用兼だめげー用に、約2万円とちょっとで購入した中古のThinkPad X201のキーボードがJISで使いづらかったので、ebayで1700円で売ってたUSキーボードを購入して、交換してみました。 交換は公式でドキュメントが出ているので、これを見れば超簡単に交換可…

NOOBS用のイメージを作って、Raspberry Piに自動インストールする

同じ設定のRasPiを作るのに便利そうなので、NOOBSのイメージの作成と、自動インストールの設定方法を調べてみました。 NOOBSイメージの作り方 あっきぃさんの資料がわかりやすいので、こちらを参照。 Raspberry Piの便利なインストーラーNOOBSを活用してみよ…

vyOSでDHCPの静的IPマッピングを設定する方法について

ルーターが立てたかったので、vyOS(旧Vyatta?)を使って立ててみました。 基本はこちらのユーザーガイドを参考にすれば設定は完了です。 後は何だかんだで増え続けるRaspberry Pi(現在5台所持)のIPをいちいち探すのが面倒なので、DHCP鯖を設定して、固定…

CUDA6で実行時間を取得する

最近CUDAを触り始め、現在はプログラミングガイドや、理研の入門テキストを読みながら学習中です。 その中でプログラムの実行時間が知りたくなったので、以下のサイトを参考に実装したのですが……コンパイルエラーが出て動きませんでした。 http://www.gdep.j…

Windows Azureの通知ハブ(notification hub)を使ってAndroid端末から通知を送る

あらすじ 先日、Sony Wearable Hackason 金沢というハッカソンに参加し、土日の2日間Smart WatchとSmartBand を用いたAndroidアプリを作っていました。 ハッカソン中、アプリに他の端末と通信する機能をつけるために何を使えばいいか悩んでいたところ、講師…

MBAのArch Linuxにデスクトップと日本語入力環境を整備する

前回 はCUIな環境しかいれなかったので、次はデスクトップと日本語入力環境を用意して普通に使えるようにしたいと思います。 X関連のインストール なによりもまず、パッケージのアップデートをしましょう。 % sudo pacman -Syu X環境のインストール 次にX関…

rEFIndでおかしくなったMacの電源管理設定を治す

前回のラブハック! KernelVMハッカソンに参加した私はoruminさんにArchのインストールを勧められてデュアルブート環境を作った! そしたらMacのスリープができなくなって、勝手に電源が落るようになってしまった!(ダレカタスケテー!) でも私はあきらめ…

MacBookAir(early 2011) にArch Linuxのデュアルブート環境を作った

2014年7月19日に新潟の山奥で開催された、Kernel/VM探検隊メンバーによるハッカソンに参加していました。 そのなかでふと「Linux実機もほしいのよー」と言ったところ「デュアルブート環境作ろう!」といわれて、@kotatsu_mi 氏全面協力の下、Arch Linux Inst…

Seeeduino ArchでLチカしてみた(Mac編)

CMSIS-DAPとPyOCDというツールを使ってARMマイコンのデバッグがしたかったので、Seeeduino Archというmbedなマイコンボードを購入しました。 http://www.marutsu.co.jp/shohin_238114/ PyOCDに対応してればいいなら、もっといいマイコンがあるのに……と思うか…

「進捗ダメです」ペンダントを作った

FLORAというArduino互換マイコンボードに以前使ったNokia5110液晶をくっつけて、首から下げるペンダント(ネックレス)を作りました。 白黒液晶上にgifアニメ画像を表示することができます。 内部構造? プログラム領域におかれた2値画像データを読みだして…

WiringPi Ruby でGPIOのプルアップ/プルダウンを設定する

概要 gemでインストールできるWiringPi Rubyはgithubのものと比べてちょっとだけ古く、GPIOのプルアップ・プルダウンが出来なかった。 しかしどうやら最新のWiringPi Rubyにはあるみたいなので、githubから取ってきてインストールしてみた。 gemのビルドとイ…

Raspberry Pi + RubyでTwitterにつぶやいてみた

Raspberry Piからつぶやいてみたかったので、自分の書いたマルツのブログ記事を見ながら設定していると、gemのインストールで以下のようなエラーが出ました。 $ sudo gem install twitter Building native extensions. This could take a while... ERROR: Er…

Raspberry Pi camera moduleを試食してみた

近況 実は数日前まで、大学の研究、仕事、趣味全てに対してやる気が起きず、ただぼーっとTwitterをみてるだけの生活をしていましたが、少し回復してきた現在は本を読んだり、だめげーをしたり、Eject工作をすることになったりと、趣味に対しての活力が復活し…

高校の時に作ったプログラムを発掘した

自宅の録画サーバーを潰して進捗記録鯖 兼 ファイル鯖を作っている。 まずは現在稼働していたファイル鯖のデータを整理してたら、昔々に作った黒歴史テキストと共に高校生の時に作ったプログラムのソースコードが出てきた。 なんだか懐かしいのでgistで公開…

ネットワーク環境を構想中…

本記事は問題が解決したため、削除しました。 相談に乗っていただき、ありがとうございました。

今日の進捗

gstreamerコンパイルの話 前回示したスクリプトでは動かなかった所があったので、修正しました(修正後のスクリプトは前の記事を参照してください)。 主な変更点はソースをgitではなくtar.xzで固められたものを持ってくるようにしたことです。 バージョンは…

Raspberry Piで最新のgst-omxをコンパイルして動画を変換してみた

以前書いたように、gstreamer用のOMXプラグイン(gst-omx)Version 1.0はバグを含んでいて、とある動画を変換すると一部フレームが欠落して残念な感じになってました。 http://tnishinaga.hatenablog.com/entry/2014/05/08/024659 http://tnishinaga.hatenab…

今日の進捗

gstreamerの話 gst-plugins-base-1.2.2のコンパイルが--enable-orcとしたときに、以下のエラーを出して失敗する問題をもう少し考えてみた。 ORCC tmp-orc.c /usr/local/bin/orcc: symbol lookup error: /usr/local/bin/orcc: undefined symbol: orc_bytecode…