2011年04月16日

BeRTOS - Freeな組込み用リアルタイムOS (1)

BeRTOS - Freeな組込み用リアルタイムOS (1)

 http://www.bertos.org/

フォーラム
http://forum.bertos.org/
メーリング・リスト
http://lists.develer.com/pipermail/bertos/

*はじまり
*ライセンス:
*BeRTOSの特長:
*GUIのコンフィグレータ
*対応CPU:
*インストーラでお気楽極楽インスール(Windows版のみ) ?
*プロジェクトを作る
*コマンドライン・コンパイル(Makefile)
*チュートリアル
*ベンチマークテスト(kernel,容量)
*気づいた点
*ソースコードだけ版(Linux,Mac) 
*再コンフィグレーション
*プロジェクトをCodeLiteで開く
*ポーティングガイド
  *LPC2388(CQ-FRK-NXP-ARM)ボードで実験
  *STM32 Value Line Discovery ポート
*LCD グラフィックス・ライブラリ
*CPU独立汎用ドライバ
*オブジェクト指向実装: KFile
*2種類のシリアル(UART)インターフェース
*最新版のドキュメント、ソース
  ★ Windows Help (2011/06/18版)
  ★ Offline HTML版
*Bertos Ver.2.7 (2011/06/18)
*gitのリポジトリ(2012/01/15)


★ はじまり
組込み用RTOS、「BeRTOS」を少しお試し中。
最近ではFreeRTOSがかなり有名になってきたと思います。
FreeRTOSは無料で、構成が簡素なことや、
後閑さん(PIC)や徹底入門本(ARM/Cortex-M3)で解説されていることもあり、
手軽に試しやすいRTOSだと思います。

で、BeRTOS。

マスコット・キャラが気に入りました。(オ〜〜〜〜〜〜イ

 
FreeRTOSより後発(2、3年くらい前?)なのでFreeRTOSを強く意識した作りになっているようです。
従って、FreeRTOSにはない特長を備えています。

★ ライセンス:
http://www.bertos.org/discover/license/ (詳細は左のリンクを参照してください)
カーネル部分はオープンソースです。
ライセンスはFreeRTOSとほぼ同様で、ライセンス料やロイヤリティは不要。
アプリーケーション側のソースは非公開でOKです。(例外付きGPL)
(変更の有無を問わずカーネル部はソースコードをGPLで公開する必要がある)

開発環境が全部入った有料版もある。

ちなみに、FreeRTOSはライセンスに「バージョン情報の明示項目」と
「無許可でのベンチマーク結果公開禁止」条項があります。


★ BeRTOSの特長:
上の画像にあるように「Not only a kernel」というのが大きなポイントです。
リアルタイム・カーネル以外に、
ペリフェラル用の「HAL」(Hardware abstruction layer)を持っていて、
大所は"ざっくり"実装済みになっています。
例えば、
printf()系やFatFs/SDカードが非常に簡単に使えたり、
キャラクタLCDやGLCDライブラリ、グラフィック・メニュー・モジュールが
利用できます。
FreeRTOSで今ひとつ物足りなかった周辺I/Oライブラリを持っていることになります。
FreeRTOSは、デモで使用しているモジュールのライセンスはFreeRTOSと無関係
なものも多いです。多分。

http://dev.bertos.org/wiki/DemoApp (真ん中の白い部分の中だけがGLCD menu)

ヒストリ付きのコマンドライン・パーサやCRC/MD2/RLEアルゴリズム、NMEA GPS protocol parer、
XMODEM、リングバッファ、リンクリスト等のライブラリもあります。
(その他多数)(ライセンスはカーネルと同じ)

例えば、SDカードの中にWindowsで使う「*.ini」形式のファイルを置いて、
それをオプション設定ファイルとして解析する「iniファイル・パーサ」などもあります。
http://www.bertos.org/use/examples-projects/sd-card-datalogger-atmel-sam7/
上のサンプル説明、途中でやめないでほしいけど (爆
実体は、多分 bertos/mware/ini_reader.c

FreeRTOSはペリフェラルの使い方をサンプルDemoに託しているが、
BeRTOSはHAL経由で使う感じでしょうか。

★ GUIのコンフィグレータ
GUIのコンフィグレータ(BeRTOS Wizard)を使ってプロジェクト、Makefileの生成や、
モジュールのカスタマイズができます。
Linux、Mac、Windowsで同じGUIを利用できます。
以下は、FatFs(元はChaNさん作)のオプション設定画面。
bertos-conf-fatfs.gif
右側のペインの項目名にマウスを移動すると、実際の定義マクロがバルーンヘルプで参照できます。

★ 対応CPU:
  http://www.bertos.org/scopri/
左が正式リリース版(v.2.6.1)。右が開発版(v.2.6.99)。
bertos-cpu-list-261.gifbertos-cpu-list-2.6.99.gif

今回試すきっかけになったのは、マスコット・キャラだけでなく、(笑
自分が持っているCPUにフレンドリーだった点もある。

bertos-periph-impl.gif  
上は、個別ペリフェラルの対応状況。AVRはフル実装。 v(^^)
  
LPC2378:
おなじみ、IF誌の付録LPC2388(CQ-FRK-NXP-ARM)とRAM容量違い。
これで、LEDブリンクがひとまず動きました。
SPIの実装がないので少し見てみる。これがないとSDカードは読めないし。

後述の「LPC2388(CQ-FRK-NXP-ARM)ボードで実験」を参照。

STM32F103RB:
STM32持ってないけど、CQ-STARM、STBee miniやmaple系と同じ。

ATMega328p:
秋月で250円。SRAM 2Kなので厳しいと思うけど。
でもそれなりに動いてしまうんです。多分。
(後述の「ベンチマークテスト」参照)

bertos-sel-board.gif
プロジェクトを生成する際、上のように開発ボードを選択できます。
LPC1768系(mbed/LPCXpresso)がないのが激しく惜しまれる。
「Cortex-M3ポート」は既にあるので、ポーティングはやれば何とかなるかも。
そのための「CMSIS Core」なわけだし。

★ インストーラでお気楽極楽インスール(Windows版のみ) ?
(注)以下の方法でインストールすると、プロジェクトの再コンフィグレーションができない様です。
   必要なら、後に出てくる「ソースコードだけ版」をお試しください。(共存可能です)

ソースコードを落してくるだけ(Community Edition)でも使えますが、
Windows用の全部入りのインストーラを使ったほうが楽ちんです。(注)
  ひとまず「トライアル版」(Trial SDK :「30-day trial」 )のインストールを強くお勧めします。

http://www.bertos.org/download-en/

標準インストール:
AVRとARMのコンパイラもインストールされます。

カスタムインストール(自分用):
AVRとARMのコンパイラは既にインストール済みなので以下のようにしました。
CygwinはUnixツールズの部分だけ(25MB程度)でパスは設定しないようなので
そのままインストールしました。
bertos-ins-custom-my-sel.gif
今のところ自分で試したのはカスタム・インストールだけです。

http://forum.bertos.org/viewtopic.php?f=4&t=20&p=51&hilit=eclipse#p51
上のリンク先には、
Do not worry about messing up your system:
every component it's installed in its own subdirectory
and does not modify your system globally (no PATH modifications).
と、あるのでインストーラはWindowsのPATHを変更しません。 ★ プロジェクトを作る Windowsのメニューから「BeRTOS SDK」-「BeRTOS Wizard」を起動します。 あとは適当に指示に従えばプロジェクトが生成されます。 IDEが起動したら「Build」-「Build project」でコンパイルできます。 コンパイル結果はプロジェクトフォルダ下の「images」フォルダに生成されます。 プロジェクト名を右クリックで「Refresh」を実行すると「images」フォルダが現れます。 ★ コマンドライン・コンパイル(Makefile) IDEは慣れないのでしばらく置いておきます。 コマンドラインでのコンパイルはプロジェクトフォルダにMakefileがあるので そこで、単に「make」と打つだけです。 (makeとコンパイラのパスは通しておく必要があります。) コンパイルオプション(gcc用)の追加・変更は、プロジェクトフォルダを「foo」とすれば foo/foo/foo_user.mk を編集します。 ★ チュートリアル http://www.bertos.org/usa/tutorial/ エキスパート向け http://www.bertos.org/use/tutorial-front-page/kernel-gestione-dei-processi/ ★ ベンチマークテスト(kernel,容量) タスク切り替え時間とFlash容量の比較があります。 http://www.bertos.org/scopri/benchmark/context-switch/ http://www.bertos.org/scopri/benchmark/memory-footprint/ http://www.bertos.org/discover/benchmarks/ Memory occupation http://forum.bertos.org/viewtopic.php?f=4&t=12 SRAMは1タスクの最低必要量が、 AVR: 100 byte ARM: 200 byte くらいだそうです。 これとは別に、タスク内でのスタック量、 グローバル変数、動的なヒープ、システムのスタックなんかが必要だと思う。 memo: 最初のアプローチとして、 1つのタスクのスタック量は「KERN_MINSTACKSIZE」でOK。 ただし、kprintf()、LOG_* マクロ使用時は「KERN_MINSTACKSIZE * 2」が必要。 ★ 気づいた点 まだ、インストールしたばかりなのでもう少しつついてみます。 APIドキュメント類が少ない(見にくい、探しにくい)ような気がします。 ★ ソースコードだけ版(Linux,Mac) 最初はこれをWindows上で使ってみました。 (Windows用インストーラを使えば特に必要ないですhttp://dev.bertos.org/wiki/DownloadPage から *.zip(Windows)や*.tar.bz2(Linux,Mac)版をダウンロードし、解凍します。 コンフィグレータ(BeRTOS Wizard)を実行するために、 pythonとPyQt4ライブラリが必要なので事前にインストールしておきます。 http://www.bertos.org/use/tutorial-front-page/installation-instructions/ wizardフォルダの中のbertos.pyを実行します。 $ python wizard/bertos.py Windowsの場合: Wizard(bertos.py)の起動に失敗するので以下を行います。 1.pyrcc4.exeの動作確認。   MS-DOS画面で「wizard」フォルダに移動して以下を実行して、   ヘルプ画面が出ることを確認します。
> pyrcc4.exe
PyQt resource compiler
Usage: pyrcc4  [options] <inputs>

Options:
    -o file           Write output to file rather than stdout
    -py2              Generate code for any Python v2.x version (default)
    -py3              Generate code for any Python v3.x version
    -name name        Create an external initialization function with name
    -threshold level  Threshold to consider compressing files
    -compress level   Compress input files by level
    -root path        Prefix resource access path with root path
    -no-compress      Disable all compression
    -version          Display version
-help             Display this information
上の画面が出ないなら「Python」、「PyQt4」のインストールを確認してください。 2,「wizard/bertos.py」を修正する。 「bertos.py」をエディタで開いて最終行付近を以下の様に変更します。
    # Something seems to not work, on Windows, using pyrcc4 with BeRTOS Wizard
    # resources. So I'm restoring the old rcc-based resource generation
    # system.
    #
    qrc, bertos_rc = os.path.join(datadir, 'bertos.qrc'), os.path.join(datadir, 'bertos_rc.py')
    if not (hasattr(sys, "frozen") and sys.frozen) and newer(qrc, bertos_rc):
         os.system("pyrcc4 \"%s\" -o \"%s\"" %(qrc, bertos_rc))
    import bertos_rc

    #qrc, rcc = os.path.join(datadir, 'bertos.qrc'), os.path.join(datadir, 'bertos.rcc') 
    #if not (hasattr(sys, "frozen") and sys.frozen) and newer(qrc, rcc): 
    #    os.system("rcc -binary \"%s\" -o \"%s\"" %(qrc, rcc)) 
    #QResource.registerResource(rcc) 
    
    if len(sys.argv) == 3 and sys.argv[1] == "--edit":
        editProject(os.path.abspath(sys.argv[2]))
    else:
        newProject()

if __name__ == '__main__':
    main()
上の黄色いブロックを有効(#を削除)にして、下の青いブロックをコメントにします。(#を付加) 行頭は「半角スペース4つ」、インデントも「半角スペース4つ」です。 Pythonなのでスペースの数を正確に記述します。 これで以下のようにコンフィグレータを起動できます。 > python bertos.py 初回起動時は、リソースをコンパイルするため非常に時間がかかりますが、 2回目以降はすぐ起動します。 「インデントエラー」が出た場合は、「スペースの数」を正しく修正してください。 bertos-wiz-start.gif 上のようにウィザードが起動します。 ★ 再コンフィグレーション プロジェクトを再コンフィグレーションしたい時は、 IDEからどうやるか不明だったので、コマンドラインでのやり方を記します。 (1) 「ソースコードだけ版」の場合。「wizard」フォルダで、 $ python bertos.py --edit ../../foo/project.bertos のようにプロジェクトフォルダにある「project.bertos」を「--edit」引数付きで 実行します。(フォルダ名は適当に読み替えてください) (2)インストーラでインストールした場合 インストールフォルダを「F:\BeRTOS-SDK」とします。 同様にコマンドラインで F:\BeRTOS-SDK\wizard\bertos.exe --edit ../../foo/project.bertos とします。 インストーラ版の場合、再コフィグレーションがうまくいかないようです。orz (常に新規プロジェクト作成画面になる) ★ プロジェクトをCodeLiteで開く プロジェクトフォルダ「foo」の中の「foo.workspace」をIDE(CodeLite)から、 「Workspace」-「Switch to Workspace」で開くことができます。 ★ ポーティングガイド Bertosを他の新たなMCUやファミリーMCUに移植する方法が解説されています。 http://dev.bertos.org/wiki/PortingGuide Porting bertos to a new CPU http://forum.bertos.org/viewtopic.php?f=4&t=69&sid=a92c273d3db8581c6d8e813b4f93a182 New board with Atmega2560 http://forum.bertos.org/viewtopic.php?f=4&t=45 ★ LPC2388(CQ-FRK-NXP-ARM)ボードで実験 以下は、LPC2388(CQ-FRK-NXP-ARM)ボードでLEDブリンクさせた時のメモ。 arm-none-eabi-gcc のバージョン:(Sourcery G++ Lite 2010q1-188) 4.4.1 まず新規プロジェクトを作ります。 上述のコンフィグレータ(BeRTOS Wizard)を起動します。(Linux,Macなら「wizard/bertos.py」) ボード選択画面で以下のボードを選びます。 bertos-sel-lpc2378.gif サンプル・テンプレートは下の様にカーネル付きの方を選びます。 bertos-sel-kernel-present.gif あとは、そのままでプロジェクトを生成させます。 このサンプルは、LEDブリンク・タスクとメインタスクが同時に動きます。 メインタスクはデバッグ用UARTにスタック使用状況を出力します。 デフォルトでは「Co-operativeカーネル」(=ノンプリエンプティブ)になるようです。 プリエンプティブ・カーネルにするには、 コンフィグレータで以下の様にチェックを入れます。(一番上) このデモは簡単なので「Co-operativeカーネル」(デフォルト)のままでも問題なく動作します。 bertos-cfg-preemptive.gif 以下生成したプロジェクト名を「1st」とします。 (1)コンパイルオプションに「-std=gnu99」の追加が必要だった。    (インストーラに付属のgccなら不要かもしれません) 1st/1st/1st_user.mkの1st_USER_CPPFLAGSに追加する。
diff --git a/1st/1st_user.mk b/1st/1st_user.mk
--- a/1st/1st_user.mk
+++ b/1st/1st_user.mk
@@ -40,4 +40,5 @@ 1st_USER_CPPAFLAGS = \
 1st_USER_CPPFLAGS = \
 	-fno-strict-aliasing \
 	-fwrapv \
+	-std=gnu99 -Os \
 	#
一応、「-Os」も追加してみた。 「-std=gnu99」については、パッケージ側のミスらしいので最新のカーネルに変更すれば 必要ないと思われます。 (2)LEDポートの変更、
diff --git a/1st/hw/hw_led.h b/1st/hw/hw_led.h
--- a/1st/hw/hw_led.h
+++ b/1st/hw/hw_led.h
@@ -39,7 +39,7 @@

 #include <io/lpc23xx.h>

-#define STATUS_LED (1 << 19)
+#define STATUS_LED (1 << 18)
(3)デバッグ用のUART出力はUART0に変更する。 1st/1st/cfg/cfg_debug.hの以下の部分を変更。
/**
 * Debug console port.
 * $WIZ$ type = "int"; min = 0
 */
#define CONFIG_KDEBUG_PORT 0
(4)コンパイル コマンドラインでコンパイルします。Makefileのあるフォルダで「make」します。
F:\hg-root\bertos\mydata\1st>make -j2 
1st: Compiling bertos/cpu/arm/hw/init_lpc2.c (C)
Building revision 5
1st: Compiling bertos/cpu/arm/drv/vic_lpc2.c (C)
1st: Compiling bertos/cpu/arm/drv/ser_arm.c (C)
1st: Compiling bertos/cpu/arm/drv/ser_lpc2.c (C)
1st: Compiling bertos/cpu/arm/drv/timer_arm.c (C)
1st: Compiling bertos/cpu/arm/drv/timer_lpc2.c (C)
1st: Compiling bertos/drv/ser.c (C)
1st: Compiling bertos/drv/timer.c (C)
1st: Compiling bertos/io/kfile.c (C)
1st: Compiling bertos/kern/monitor.c (C)
1st: Compiling bertos/kern/proc.c (C)
1st: Compiling bertos/kern/sem.c (C)
1st: Compiling bertos/kern/signal.c (C)
1st: Compiling bertos/mware/event.c (C)
1st: Compiling bertos/mware/formatwr.c (C)
1st: Compiling bertos/mware/hex.c (C)
1st: Compiling bertos/struct/heap.c (C)
1st: Compiling 1st/main.c (C)
1st: Compiling bertos/drv/kdebug.c (C)
1st: Assembling with CPP bertos/cpu/arm/hw/crt_arm7tdmi.S
1st: Assembling with CPP bertos/cpu/arm/hw/vectors_lpc2.S
1st: Assembling with CPP bertos/cpu/arm/hw/switch_ctx_arm.S
1st: Linking images/1st.elf
"f:/Sourcery3 G++ Lite/bin/arm-none-eabi-"objcopy".exe" -O srec images/1st.elf images/1st.s19
"f:/Sourcery3 G++ Lite/bin/arm-none-eabi-"objcopy".exe" -O ihex images/1st.elf images/1st.hex
"f:/Sourcery3 G++ Lite/bin/arm-none-eabi-"objcopy".exe" -O binary images/1st.elf images/1st.bin

F:\hg-root\bertos\mydata\1st>arm-none-eabi-size images\1st.elf 
   text	   data	    bss	    dec	    hex	filename
  20172	    124	   2544	  22840	   5938	images\1st.elf
(5)実行する 1st/images/1st.hex をlpcsp.exe等でLPC2388(CQ-FRK-NXP-ARM)に書込んで実行します。 UART0のボーレートは115200bps。 LEDブリンクしながらUARTに以下のプロセス・スタック情報を出力します。
TCB      SPbase   SPsize   SPfree   Name
--------------------------------------------------------
40000BAC 0        0        0        main
40000B6C 400009BC 432      288      led_process
★ STM32 Value Line Discovery ポート 秋月で1100円のこれ。 http://akizukidenshi.com/catalog/g/gM-04276/ Bertos Ver.2.7から正式対応になったようです。 bertos-stm32vld.gif STM32のディスカバリボードへの最小ベース部分の移植。 BeRTOS support for STM32 discovery kit ★ LCD グラフィックス・ライブラリ BeRTOSの表示システムは非常に進んでいて、 以下のような完全なサブシステムを持っています。 フォント、ビットマップ、クリッピング、Textの整形、対話型メニュー これらは、コンパクトでパワフルなGUIを作るのに適しています。 また、シンプルなグラフィック要素を使って複雑なメニューシステムを構成します。 betros-gfx-module.gif さらにreadlineライクな、パーサ付き、ヒストリ付きのコマンド・コンソールが 利用できます。 (この項目は、原文をテキトウに訳したものです。http://www.bertos.org/use/ ) 以下はロゴがバウンドするデモ。短いけど。 BeRTOS bouncing logo on Luminary Micro http://www.youtube.com/watch?v=G7P_sEWy-kE ★ CPU独立汎用ドライバ 以下はHALベースで構成されたドライバなのでCPUによらず使用可能。 新しいCPUへの実装も簡単らしい。 ADC API Buzzer Atmel Dataflash I2C EEPROM AT25Fxxx Atmel flash memories FT245RL USB to parallel converter Keyboard I2C with bitbang support Displaytech 32122A Graphic LCD DC Motor with PID Alphanumeric LCD MPC41 digital potentiometer LM75 temperature sensor MPxx6115A pressure sensor NTC TRIAC phase partialization PWM API PCF85974 I2C port expander RIT P14201 oled display Secure Digital card API Serial API Bitbanged SPI Stepper motor with ramps TAS5706A digital audio DSP Thermostat TI TMP123 temperature sensor System timer API USB device API Watchdog ★ オブジェクト指向実装: KFile http://www.bertos.org/use/tutorial-front-page/drivers-kfile-interface/
Drivers: KFile
KFile interface: when object oriented programming (in C!) is useful in embedded

Do not be tricked by the headline, this is not otherworldly.

But let's start with order: what problem do we want to solve?

We have the typical problem of exchanging data with a peripheral:
a RS232 serial, a SPI, an EEPROM, a flash and so on.

In our embedded operating system (http://www.bertos.org)
we often create drivers that transfer data.

We usually code in C but very often we use the object oriented approach
that is not only related to high level languages like C++,
nor necessarily to a lack of resources.
If used in the right way it elegantly solves a broad range of problems
linked with the creation of common and reusable interfaces
that allow you to save development time and precious memory space.
KFileインターフェース: C言語によるオブジェクト指向プログラミングは、組込みでも便利に使えるよ! これは、悪ふざけなんかじゃないんだ。 じゃぁ、順番にいこう:  みんなが解決したい問題は何? ペリフェラル経由でデータ交換したいという典型的な問題があるとしよう。 例えば、RS232Cシリアル、SPI、EEPROM、Flashなんかを使う時ね。 我々は、組込みOS上でデータ転送用のドライバをよく作ったりするんだ。 リソース不足って訳じゃないけど、C++言語みたいなハイレベル言語に似た オブジェクト指向アプローチを、C言語でコーディングするときに非常によく使うんだ。 もし正しく使えば、複製(コードのコピペ)に関する幅広い問題を簡潔に 解決できたり、インタフェースの再利用は開発期間を短縮できるし、 貴重なメモリ空間も節約できるんだ。 (冒頭だけ抄訳(しょうやく)してみた。って、妙な訳かも (爆) ★ 2種類のシリアル(UART)インターフェース ロギング・チュートリアル http://www.bertos.org/use/tutorial-front-page/basic-logging/ http://forum.bertos.org/viewtopic.php?f=4&t=45 デバッグポートはcfg/cfg_debug.h で変更できる。
Bear in mind, though, that BeRTOS has 2 implementations of the serial port:
one is used for debugging purposes only,
it's slow and safe; the other can be used to transfer all types of data,
it's fast and it exposes a kfile interface.

The former is the kdebug serial port,
which is initialized with kdbg_init() and can be used with kprintf() or LOG_*() functions
(see the logging tutorial for more information).
The implementation can be found in bertos/cpu/avr/drv/kdebug_avr.h.

The latter is the proper UART port,
which is initialized with ser_init() and accessed with the KFile interface.
To implement the serial driver, you need to look at bertos/cpu/avr/drv/ser_avr.c.
BeRTOSには2種類のUARTの実装があることを覚えておいてほしい。 1つ目は、デバッグ用途だけに使うんだ。   スピードは遅いけど安全に使うことができる。 2つ目は、いろんなデータタイプの転送に使うことができる。   kfileインターフェースを使って高速通信ができるんだ。 前者は、kdebugシリアルポートといって、kdbg_init()で初期化する。 kprintf()やLOG_*()といった関数が使えるんだ。 (詳しくはロギング・チュートリアルを見てね) 実装は、bertos/cpu/avr/drv/kdebug_avr.h にあるよ。 後者は、正式な(普通の)UARTポートで、ser_init()で初期化して KFileインターフェース経由で使うんだ。( kfile_printf()など ) シリアル・ドライバを実装するなら bertos/cpu/avr/drv/ser_avr.c を見ておく必要がある。 (抄訳(しょうやく)してみた。って、妙な訳かも (爆) (訳者注:   デバッグ用のkprintf()系は、内部で割込みが禁止されます。) (訳者の意見: 割込み禁止にしなくてもいいんじゃ (オイ) ★ 最新版のドキュメント、ソース トップページのドキュメントは「正式版」のドキュメントであるものの、 無料版なので半年に1回しか更新されないようです。 (インストーラ版のソースコードも同じ) 現在はちょうど半年に近いくらいなので、一番古い状態のようです。(内容が少ない) 最新のドキュメントとソースコード(開発版)は以下から入手できます。 http://dev.bertos.org/wiki Web閲覧: 最新ドキュメント モジュール http://dev.bertos.org/doxygen/reference/modules.html データ構造 http://dev.bertos.org/doxygen/reference/annotated.html ファイル http://dev.bertos.org/doxygen/reference/files.html ディレクトリ http://dev.bertos.org/doxygen/reference/dirs.html 最新のソースコード(開発版)は、 http://dev.bertos.org/wiki/DownloadPage の 「Automatic weekly snapshot 」や「SVN access 」 から取得します。 [ ドキュメント生成メモ: ] 全ての環境: Doxygen型(*.html形式)のドキュメント 取得したソースコードのトップフォルダで以下を実行します。
$ doxygen Doxyfile-offline
これで、 doc/offline-reference/html にドキュメントが生成されます。 (事前にdoxygenのインストールが必要です) (ドキュメント生成には結構時間がかかります) Windowsのみ: Windows Help型 (*.chm形式) chm形式のHelpファイルが生成できます。 (単語検索ができるので*.chmの方が便利かも) 生成にはPython、hhc.exe、Doxygen等が必要です。 取得したソースコードのトップフォルダで以下を実行します。
> python doc/chm-builder.py Doxyfile-offline
上で、「*.py」ファイルをPythonに関連づけていない場合は、「doc/chm-builder.py」の 23行目あたりの toc_modifier = r"doc\chm-toc-modifier.py"toc_modifier = r"python doc\chm-toc-modifier.py" に変更します。 うまくいけば、 「bertos/bertos-doc.chm」が生成されます。 ★ Windows Help こちらで生成したchmファイルを置いておきます。 Bertos Ver.2.7のCurrent(日付による)相当のものです。 bertos-doc-20110618.chm bertos-doc-20110430.chm ダウンロードしたら、chmファイルのプロパティ画面を開いて 「ブロックの解除」を実行してください。 (参考ページ : http://www.nishishi.com/blog/2009/06/chm_help_tips.html) ★ Offline HTML版 内容は上のchm版と同じです。 offline-reference-20110618.zip ★ Bertos Ver.2.7 (2011/06/18) 以下にアナウンスされています。 今は、RC版ですがSAM3Xを除けば正式リリースと同じ内容です。 Ver.2.7の変更点: http://dev.bertos.org/wiki/NextChangelog ダウンロード http://dev.bertos.org/wiki/DownloadPage ★ gitのリポジトリ(2012/01/15) Bertosもgitに移行しはじめたようです。 git://src.bertos.org/bertos.git 参考リンク: フォーラム http://forum.bertos.org/
posted by Copyright (C) avrin All Rights Reserved. at 20:25| Comment(0) | BeRTOS | このブログの読者になる | 更新情報をチェックする