プログラムでも書いてみよう

真面目なプログラムを書く不真面目な男の日記

雑学

[ リスト | 詳細 ]

記事検索
検索

全1ページ

[1]

昔なんとなくlinuxにはまっていて、sanbaというwindowsのファイル共有互換のファイルサーバーをいじっていたころを思い出した。
 
windowsのファイル共有はネットワーク越しに削除されたファイルはゴミ箱に入らないので一度捨てたら最後通常の機能では復元ができない。
ハードディスクから復元するソフトを使えば、復元できるかもしれないがそんなものを買う余裕などない♪
そこで、掲題の機能なのだがwindows server 2003には動作中にファイルやフォルダのスナップショットを作成する機能があるのだ。
そしてlinuxのソフトでwidnowsファイル共有互換のソフトとしてsambaがあるが、これでもボリュームシャドーコピーが利用できるので壊れかけのPCをLinuxOS搭載のsambaファイルサーバーにしてスナップショットと復元を試していたころがあった。
 
そして、時代は移り変わりWindows Vistaや7が出てきたが、シャドーコピーという名称で上位OSにのみ搭載されているようである。
 
こうやって、文章にして書くと、ただのバックアップ機能のようにしか見えないがこの機能の面白い点は、フォルダやファイルのプロパティからバックアップの復元ができるのである。
 
何がいいたいかというと、、、いまさらながらこのUIを使って簡易バックアップソフトを作ろうかと思案中(爆)
トラ技のボードを使う事が難しくてできませんでした。(H8SX/1655)
トラ技に出ていたソースはEclipseでなくルネサスのHEWでも、そのまま動くのでしょうか?
実はやってみましたがエラーが沢山出ました。教えてください。
 
以上のような質問がブログのコメントに来ました。
かなりハードよりのソフト開発のようですが、ハードウェアが一切わかりません。
情報が少ないため正確な回答はできないですが「何らかのCPUを使って組み込み系の開発をするときの私の経験則」をいくつか書きたいと思います。
 
1.コンパイラについて
コンパイラはCPU,OSに対して専用の物が必要になります。
対象のコンパイラが目的の環境(CPU)に対応したクロスコンパイラであれば基本的に動作するでしょう。
 
2.エラーについて
ルネサスのHEWでエラーがたくさん出たとのことですが、文脈からコンパイルエラーと推測します。
コンパイルエラーは頭をつぶせばごそっと消えることが多いので先頭からつぶしていきましょう。
環境によるコンパイルエラーはIncludePathが正しく通っていないなどがよくあります。
また、コンパイラによってはPathに2BYTE文字やスペースが入っていると動作しない場合もあります。
エラー内容をよく見て、Pathが通っていないとかファイルがないなどの場合、これらをチェックしましょう。
 
3.作業手順について
組み込み開発ではソフト開発と同時にハードの動作チェックも重要なポイントになってきます。
また、ディスプレーなどの出力デバイスがないケースもあり想定とはまったく違った所にはいっているケースも考えられます。
 
A.コンパイラのあるマシンでソースの構築
B.ターゲットマシンへのオブジェクトの配置
C.テスト
この3つの手順をひたすら繰り返すのが開発の基本であるため、スタートとしてこのループが行えることが大前提になります。
一番最初に行っておきたいのが「作業着手の最低条件がそろっていることの確認」をする必要があります。
 
特にテストでは、なんらかのOutputを必ず作成し、それに基づいた動作確認が必要になります。
たとえば、I/Oを使い出力ができるならOutのBitに対してLEDなどを接続し出力できる状態にしておいて最低限のコードでそのOutのBitへの出力できることを確認します。
 
int main(int argc , char* argv[]){
  /* 出力Bitを立てる */
  _outb( 目的のアドレス , 0xff ); 
 /* プログラムを終了させないため無限ループ */
 while(1);
 
 return 0;
}
 
このレベルのコードをコンパイルしターゲット環境に配置しテストの結果LEDが点灯すればこの段階で初めて「目的のデバイスに、想定したコンパイラを使い、自分の理解している作業手順で配置しテストを行える」といえます。
この確認ができて初めて開発がスタートすると考えています。
 
過去の経験からの私のルールですが、ご参考までに(笑)
 
自作フリーソフト i-port紹介ページ
http://www.geocities.jp/ys_and_otherjp/index.htm
 
今日は、Stack Overflowにひどく苦しめられてしまった。
といっても、実時間では1,2時間のものなのですが、その苦労話をひとつっ(^^;)
 
今回作ったのはWindowsのCOMライブラリで、この辺りは頻繁にいじるし作るから特に苦手意識も無く息をするより簡単に作っていたわけさっ。
ライブラリだから実行ファイルのExeなんかをテストコードとして書いてちゃんとテストして、目的のコードに組み込む手順でやってたわけさっ。
 
そしらたさっ、テストコードでは動くのに、目的のコードに組み込むとStackOverflawするわけさっ。
テストコードはWin32ベースじゃないが、目的のコードはWin32だからその違い?いやいや、StackOverflawだから再帰でコールスタックがひどいことになったか?などを目安にとりあえず、コードを追っかけていったわけさっ。
 
そしたら有りました、、、ライブラリの関数の中に、0x40000BYTEほどスタックにとっている逝かれたコードが!
誰が書いたんだかっ!(もちろん自分)
 
小さなテストコードではスタックが何とか、生きていけたけど目的のコードになるとスタックの領域が足りなくなっていたのね、おばかっ
 
ヒープに取り直したら問題なく動作可能☆
 
教訓・気をつけようくらい夜道とライブラリの実装(涙)

ウイルスって言うと、すごく悪意を持った物として考えられてしまいますが、世界最初のウイルスってコンピュータの権威フォン・ノイマンが作ったんですよ。

昔のコンピュータは全てプログラムをハードウェアで行っていましたがその一部をソフトに置き換えて、ソフトを書き換えることにより動きを変える事を提唱した人です。

平たく言うと、全部ハードウェア(電気の流れだけ)で電卓を作っていた時代にハードウェアの一部をソフトウェアに置き換えて必要な時にソフトを入れ替えれば電卓にもなるメモ帳にもなる、、、見たいな考えをした人です。

今のコンピュータの基本原理でなくてはならないものですよね。

で何でこの人がなぜウイルスを作ったかというと、ソフトには不具合や機能追加はよく起こるので、自動的に不具合修正版や新しい機能を持ったソフトを配信すればみんなが一番言い状態でコンピュータを使えるから自動的にコピーして他のコンピュータにも配信して見たいな事を考えて作ったらしいです。

なんとなく、ノーベル賞のノーベルとダイナマイトの関係ににてますよね。

世の中を良くしようと思って作ったけど悪用(もしくは想定外の利用)されてしまった感じです。

話にまとまりがなくなってきたので、世界が平和でありますように(笑)

全1ページ

[1]


よしもとブログランキング

もっと見る

[PR]お得情報

いまならもらえる!ウィスパーうすさら
薄いしモレを防ぐ尿ケアパッド
話題の新製品を10,000名様にプレゼント
ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!
いまならもらえる!ウィスパーWガード
薄いしモレを防ぐパンティライナー
話題の新製品を10,000名様にプレゼント

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事