「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 BIGLOBEのサービス一覧
IPv6対応したけどどうもIPv6優先にならないな…と思ったら、OpenBSDでは/etc/resolv.confにfamily inet6 inet4を記述すれば良いと@yosatakさんからのアドバイス。おかげでhttp://www.kame.net/でも無事に動くカメが拝めるようになりました。アドバイス、本当にありがとうございます。 そういえば昔Visor Platinumを持ってたし久々に遊んでみたいよねと思ってPHEMをAndroid端末に突っ込んでみました。ROMイメージは当時実機からの吸い出しをやっていなかったのでftp://ftp.oreilly.com/examples/palmpilot2/からPalmOS 3.1Jのイメージを拝借してきたんですが…Android端末ではクレードルを使ってHotSyncするなんてことができない以上、ちょっと実用は辛いかなと。LanSyn
現在最新バージョンで gcc 9.1.0 がリリースされていますが、マイコンに関してはサポート状況がアーキテクチャによって異なるようです。 本記事では僕が現在(2019/7/15) PC に入っているマイコン用ツールチェインのバージョンやビルド方法について多少触れたいと思います。 「別に組込みで最新のコンパイラ使えなくてもいいじゃない」と思われるでしょう。 しかし、僕は新しいものがどうしても使いたいのです。だって C++2a したくないですか?? ということで、なるべく C++ が使えて、かつなるべく最新バージョンのツールチェインを使いたいという気持ちでこの記事を書いています。 ホスト環境 例によって Mac ですが、以下のような構成でビルドをします。gcc 等は Xcode に付いている clang ではなく、GNU 生粋の gcc です。 OS: macOS Mojave CC: GC
概要 フリーの v850 gcc ソースは,以下で公開されています. 今回,上記ソースを 64bit版Linuxでビルドできるようになりましたので,ビルド手順を公開します. 下記手順は,2018年10月/TOPPERS開発者会議で開発協力して頂ける方々から頂いた情報をもとに手順化しております(感謝). ビルド環境 OS Windows10 pro ビルド用端末 WSL $ uname -a Linux 4.4.0-17134-Microsoft #345-Microsoft Wed Sep 19 17:47:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux $cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRI
できました。しかもJVMで! Hello worldキターー!!!!!! ちなみにこれはminiJVM上のランタイムのjarファイルから実行対象のjar読んで実行してます!!!!! pic.twitter.com/n8BGu9hQiy— おはよう君(parody) (@ohayoyogi) 2023年2月14日 はじめに 前回記事では、PSVitaの開発環境を整える方法について記載しました。 ohayoyogi.hatenablog.com VitaSDKのサンプルなども動かし、Vitaのホーム画面から立ち上がるアプリが作れることがわかりました。 さて、これからどうする??ということなんですが、やはり「誰もまだやっていない何かを移植する」というのが楽しいのかなと思い、しばらく移植できるネタを探していました。 miniJVM そこで見つけたのがminiJVMというJVM(Java Virtu
Running RISC-V (picorv32) on TinyFPGA BX. Yosys、arachne-pnr の動かし方の基本を理解し、RISC-V のアーキテクチャも少し分かってきたので、当初の目標「FPGA で RISC-V を動かす」にチャレンジしてみようと思います。実はチャレンジも何も、ネットでたくさんの事例が紹介されているのです。ただし、私は FPGA についてはほとんど素人ですので、基本を理解する良いテーマだと思いました。 RISC-V の HDL 実装については、既に優秀な技術者の方が GitHub で公開なさっています。有名なところとしては、次の 2つがあるようでした。 PicoRV32 VexRiscv 今回は、Project IceStorm で有名な Clifford Wolf さんの GitHub で公開されている、picorv32 を勉強してみることにし
KPIT_Eclipse_UserManual.pdfを読んだり、KPIT EclipseとGNUツールチェインに関するヘルプの他の 項目に目を通したりしたのですが、ちょっと戸惑っていることがあります。 (1) KPIT_Eclipse_UserManual.pdf 網羅的なリファレンスではなく、チュートリアルを集めたような、いわゆる入門編マニュアルでした。 このこと自体には戸惑っていませんが、他にはマニュアルがなく、以下のようなことを確認したい 場合に、どうすればよいのか分からない、ということに戸惑ってしまっています。 * KPIT EclipseのProject作成のオプション設定の各項目の詳細 * KPIT EclipseのBuildオプション設定の各項目の詳細 * KPIT EclipseのRun/Debugオプション設定の各項目の詳細 (2) KPIT EclipseとGNUツー
Raspberry Pi Pico 用の mruby を Build するためのコンテナ作成用 Dockerfile を書いてみたRubymrubydockerfileRaspberryPiPico はじめに @GORO_Neko です。ご存知の方ご無沙汰してます。初めての方お初にお目にかかります。 最初にいつも通りのお断りをば。 自分、仕事では一切マイコンボードを利用した業務に携わったことがございません。 以下は、自分が所属する会社の意向を反映したものでもスタンスを示すものでもなく、単なる一個人の趣味の活動から産まれた記述です。 … はい。 Raspberry Pi Pico 用の mruby を使えるようになっていた(凄い! 嬉しい!) いつものごとくネットをサーフィンしていて、Raspberry Pi Pico 用の mruby を使えるようにしてくださった方がおられることに、先日気
表題の通り、アプリケーション組み込み型データベースSQLite3をRaspberry Pi Picoに移植しました。4ドルのマイコンで動くRDBMSです。若い頃、「ソフトウェアの移植は創造性のないオッサンの趣味だ」と考えていたのは秘密です。 SQLite3は様々なプラットフォームに移植されています。実はPicoへの移植は既にいくつかあるのですが、恐らくほとんどの実装はOSがない環境への移植をサポートするVFSレイヤーをカスタマイズしたものだと思います。今回はRaspberry Pi PicoにPOSIX互換のファイルシステムを実装し、通常のUnixとして振る舞わせました。表題はSQLite3ですが話のキモはPOSIX互換のファイルシステムAPIです。 Picoのファイルシステム事情 Raspberry Pi Picoはいわゆるマイクロコントローラーなので、OSもファイルシステムもないベアメ
俺が考えた最強のSTM32開発環境構築(STM32CubeMX, OpenOCD, Semihosting, VSCode and C++)STM32STM32CubeMXVSCode この記事はフューチャー2 Advent Calendar 2019の14日目です。 1枚目もありますのでぜひ御覧ください。 はじめに 普段はGoやJavascriptをNeovimやVSCodeで書いていた私ですが、組み込み系はSW4STM32などEclipse系のIDEを使っていました。 しかし、Web系のモダンな開発環境と比較すると、組み込み系の開発環境はまだまだ使いにくい…! そこで、STM32(に限らず、ARM Cortex-M)の開発環境をVSCodeを中心に構築した記録です。 勢い余ってC++のビルドも出来るようにしました。 結果、IntelliSenseの「強さ」を見せつけられ、更にVSCod
osdev-jpでは、OS開発に有用な情報を収集し公開しています View My GitHub Profile osdev-jpへの参加方法 osdev-jpでは公式のコミュニケーション手段としてSlackとメーリングリスト(ML)を持っています。 それから、情報を蓄積する場としてGitHubを使っています。 SlackやMLではOS開発の質問とか相談が日々やり取りされています。 「30日でできる!OS自作入門」に関するサポートも有志により行われています。 SlackかMLへ参加いただくことでosdev-jpのメンバーとなれます。 参加するには必要事項を記載の上、既存のメンバーもしくは下記の管理者連絡先へ申請してください。 OS自作や低レイヤに対する熱い思いがあれば、申請が承認されるでしょう。 連絡先 Twitter @uchan_nos Twitter @hikalium E-Mail
ビジュアルプログラミング可能なレトロゲームコンソールが 自作 できるッ! …勝手に連載記事(笑)。 前回はパーツ調達編 でした。中華通販も最初はドキドキしながらポチったりするのですが、次第に慣れてくるものです。いつの間にか怪しげな黄色や白の空き封筒が増え…、郵便配達員からマークの目で見られるようになり…、Aliのshipmentリストが空になるロスを味わうと、また何かポチりたい欲求に襲われることになる。 …そんなわけで、無事に荷物が届いたらホッとしてやる気がなくなってしまうという現象(名前は適当に考えて下さい(^_^;) と戦いながら、マイコンボードに ファームウェア を突っ込んであげることにしましょう。 とは言っても、既にgithubで公開されているファームウェアを カスタマイズするだけ です。そうすることによってオリジナルゲームコンソールを組み立てられるようになっているわけですね。
結論 以下の組み合わせでH8/300H用のツールチェインがビルド可能。(11/4 追記:ただしnewlibの動作を実機マイコンで確認していない。GCCはH8/3664Fでの動作を確認済み) Debian 10.6 binutils-2.30 gcc-8.4.0 newlib-2.5.0 はじめに Debian/UbuntuにはH8/300H用のパッケージ(gcc-h8300-hms 3.4.6,binutils-h8300-hms 2.16.1)が用意されているものの,既にバージョンが古くnewlibもない。 また,各所で紹介されている情報も古くなりつつあるため,最低限のアップデート情報を紹介する。 準備 以下のパッケージをインストールする。 apt install build-essential libgmp-dev libmpfr-dev libmpc-dev bison flex t
はじめに リンカスクリプト初心者がPico SDKのリンカスクリプトを眺める。今回眺めるのはmemmap_default.ld。 大きく分けて下記のようなブロックに別れている MEMORY ENTRY SECTIONS elfにもリンカスクリプトの詳しくないので間違っている情報があるはず。 MEMORY メモリ領域のアドレスとサイズ定義している。 MEMORY { FLASH(rx) : ORIGIN = 0x10000000, LENGTH = 2048k RAM(rwx) : ORIGIN = 0x20000000, LENGTH = 256k SCRATCH_X(rwx) : ORIGIN = 0x20040000, LENGTH = 4k SCRATCH_Y(rwx) : ORIGIN = 0x20041000, LENGTH = 4k } このあたりはハードウェアに強く依存する。
jlcpcb 基板 遊舎工房 トッププレート コンスルー×4 amazon OLED モノタロウ アルミ板(ボトムプレート) ねじ,ナット トラックボール マルツ promicro(RP2040)×2 aliexpress キースイッチ キーキャップ ジェスチャーセンサ RGBLED →WS2811を使用するのでアノードコモンのLEDを購入 私が購入したところなので、OLEDはaliexpressで安く買えますしpromicroやトラックボールは遊舎工房でも売ってます。 基板設計・製造 Kicadの勉強をしましょう こちらのチュートリアルをやっておけばフットプリントを作る部分なども書いてあるのでかなり応用できるはず まずはどんなキーボードにするか決めなきゃならないです。 おそらくほとんどの方はキーの配置やキーの数にこだわりがあり、 自分に合ったキーボードを作っておられると思います。 しかし
はじめに ここまで作ってきたベアメタルのLチカはGCCでビルドしてきたが、それをclangでビルドしてみる。 clang-10のインストール Ubuntu 20.04環境でClangをインストールする。バージョンは10。 $ sudo apt install -y clang-10 lld-10 make Makefile ベースはLチカのFLASH + コンパイル済みBoot Stage2バージョン まずはMakefileを下記のように変更する。 LLVM_OPT = --target=armv6-m-unknown-none-eabi -mcpu=cortex-m0plus ASMOPT = $(LLVM_OPT) -c -g COPT = $(LLVM_OPT) -c -mthumb -ffreestanding -g -O0 LOPT = $(LLVM_OPT) -nostdlib
本記事はeeic(東京大学工学部電気電子・電子情報工学科)| Advent Calendar 2022の19日目の記事として書かれたものです。 はじめにどうもEEIC2021の@takutaku3です!自分には特に定まったUser IDがなくてサービスによって使うUser IDが異なっているので、全部同じUser IDに統一したかったなーと今頃後悔しています。ちなみにGithubは@tak-ka3であり全く違うUser IDですよね。 本日は自分が参加したLFXのRISC-V Mentorshipでの経験をシェアしたいと思います。このプロジェクトの日本人の体験記事は私が調べた限り見つからず、まだまだ日本では浸透していないように感じたのでもっと広まって欲しいと思い今回記事を書くことにしました。そのため技術的な詳細というよりはこのプロジェクトの概要が中心となっています。以後このプロジェクトをM
The ARM TrustZone is an optional secu=rity feature for Cortex-M33 which shall improve the security for embedded applications running on microcontroller as the NXP LPC55S69 (dual-core M33) on the LPC55S69-EVK. As with anything, using and learning the TrustZone feature takes some time. ARM provides documentation on TrustZone, but it is not easy to apply it for an actual board or toolchain. The NXP M
ファームウェアエンジニアの中林 (id:tomo-wait-for-it-yuki) です。 既存実装やコメントを見ると、「お?これ、なんでだろう?」と違和感に覚えることがありますよね。システムは動作しているので、そのままにしておいても特に問題は発生しません。ですが、あえてこういうところを調査してみると、新たな発見があったり、コードをより改善できたり、ブログのネタにできたりします。 本エントリでは、ファームウェア実装の中で見つけた、次のstrptime関数の使い方について、タイトルの結論に至った経緯を共有します。 // NTP パケットをドロップしていると使えないので // `Mon, 27 Jul 2020 06:53:34 GMT` // のフォーマットをパースして、システムの時刻とする struct tm t; char *pos = strptime(buf, "%a, %d %b
これは、自作OS Advent Calendar 2019 の7番目の素数日の記事です。(遅れてごめんなさい!) はじめに github.com liumOSは、2018年の中頃から私が一人で開発している自作OSです。これまでにいくつかの自作OSを作っては壊し続けてきましたが、今回が3作目になります。(蛇足ですが、前作はchnosという名前で、2010-2012年に主に開発していたようです。) 今回は、このliumOS自体の紹介ではなく、開発をしてゆく中で色々と工夫したポイントを紹介したいと思います。 ビルドの依存関係を自動生成する プロジェクトの規模が大きくなってくると、全ファイルを毎回ビルドしていては時間がかかるようになってきます。 liumOSプロジェクトでは、C++のソース(.cc)とヘッダ(.h)ファイルが合計80個程度あり、これらを毎回ビルドするのはCPU時間の無駄です。 そこ
Redox とは Rust 製の Unix Like OS 。 以下、公式サイトより引用。 Implemented in Rust Microkernel Design Includes optional GUI - Orbital Supports Rust Standard Library MIT Licensed Drivers run in Userspace Includes common Unix commands Newlib port for C programs 開発は Github 上で進められている。 https://github.com/redox-os/redox 公式ドキュメントも充実。 https://doc.redox-os.org/book/ とにかく動かしてみたい ということで、公式の Get Start に沿って進めてみる。 仮想マシンで動作 Gith
Windows版のEmacsで子プロセスを起動するときに正しいコマンドライン引数が子プロセスに伝わらない(場合がある)不具合について調査、改善してみました。 この不具合は様々な現象を引き起こします。例えばgrepに指定した文字列が検索されないといった形で問題が現れます。 調べたところ三つの原因が見つかりました。 CreateProcessA(ANSI版、非UNICODE版)を使っている コマンドライン引数の文字エンコーディングが間違っている場合がある Emacsの引数のエスケープ処理に問題がある 一つ目は、Emacsが子プロセスを起動するのにWin32APIのCreateProcessAを使っていることです。CreateProcessAはANSI文字列版(MBCS版)であり、CreateProcessWというWide文字列版(UNICODE版)ではありません。なのでどう逆立ちしても(CP6
はじめに Intel MacのmacOS 13.6を使用します。 こちらの説明通りに作業を進めました。 https://74th.hateblo.jp/entry/ch32v003fun コンパイラが見つからない ./ch32v003fun/ch32v003fun/ch32v003fun.mkを開発環境に合わせてあげます。 % make all riscv32-unknown-elf-gcc -o test.elf ch32v003fun/ch32v003fun/ch32v003fun.c test.c -g -Os -flto -ffunction-sections -static-libgcc -march=rv32ec -mabi=ilp32e -I/usr/include/newlib -I./ch32v003fun/ch32v003fun/../extralibs -I./ch3
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く