ソフトウェア開発
QEMUをちょっと改造したくなったので、Windowsでビルドしてみました。 今回はARMv8 AArch64用のQEMUをWindwos向けにビルドしてみます。他のアーキテクチャのビルドも手順は同じですので参考にしてください ビルド環境の構築 ビルドにはMinGW64を使用しますの…
Cortex-A5 CMSISのリンカスクリプトをベースにコンパイル環境を構築していると こんなエラーが発生しました。 ld.exe:ARMCA5.ld:1: ignoring invalid character `#' in expression ld.exe:ARMCA5.ld:1: syntax error collect2.exe: error: ld returned 1 exi…
こちらに書いたように無償のVisual Studio Expressは2017を最後に廃版になります。 eng-notebook.com となれば、その代わりの環境が必要になりますね。 その第一候補がPleiades All in Oneです! Pleiades All in Oneとは? Pleiades All in OneはEclipseを…
昔はVisual Studioは高くて高くて購入なんかできませんでしたが、今では無償で使うことができます。 無償で使えるVisual Studioには Visual Studio Community Visual Studio Express の2種類があります。 それぞれの違いを見ていきましょう。 Visual Studio …
Visual C++でopendir()などを使用するためにdirent.hをincludeしようとしましたが、エラーになってしまいました。どうやらVisual C++にはdirent.hが用意されていないみたいですね。 代わりにこれを使います。 msdirent.h これでdirent.hを使ったソースをVisu…
dllファイルに含まれる関数を調べたい場合はVisual Studioに付属のDependency Walkerを使うのが定番だったんですが、最近のVisual Studioには付属してないみたいですね。 Visual Studioに付属しなくなった代わりにVisual Studioのヘルプページから公式ページ…
ftell()の不可解な動作にはまってしまいました。また同じ間違いを繰り返さないようにメモ。 『ファイルを読み込みながらftell()で読み込んだ位置を保存、fseek()でそこに戻る』 なんていうテキスト処理をVisual Studio Express 2015で作ってたんですが、なぜ…
FreeRTOSのことを調べてて気になるページを見つけました。 Amazon FreeRTOS えっ!?AmazonがFreeRTOSをリリース!? AWSに接続できるIoT向けOS どうやら、Amazon FreeRTOSはIoT向けAWSサービスに接続するためのRTOSみたいです。 Amazonとしては、IoTの爆発…
MDK-ARMでは通常はARMCC5(armcc)やARMCC6(armclang)を使いますが、実はGCCも使うことができます。 無料のMDK-ARM LiteではARMCCで生成できるオブジェクトサイズに制限がありますが、GCCを使えば、そんな制限なしでMDK-ARM Liteを使った開発をすることが…
Visual Studio Express 2017 が公開されました! 最近はCommunity押しのMicrosoftですが、ライセンス的にCommunityが使えない場合もありますしExpressの公開はうれしいですね。 ダウンロード方法 ではダウンロード方法です。 まず、Visual Studio Expressの…
C/C++でコーディングするなら避けて通れないのがメモリリーク対策です。 高価なメモリリーク検出ツールもありますが、VCではそんなもの買わなくてもメモリリークを検出する方法が用意されています。 1行コードを付け足すだけ この機能の使用方法は簡単! こ…
armcc/armclangでビルドしたプログラムを実行すると、なぜかmain()にたどり着くことなくBKPT命令で停止してしまいます。 なんだこれ?BKPT命令なんて書いてないのに・・・ 原因はセミホスティング __main(armcc/armclang標準のスタートアップルーチン)内で…
ARM C Compiler(armcc/armclan)でビルドすると、デフォルトでセミホスティングを使おうとしてしまいます。 セミホスティングに対応していないシステムでARM C Compilerを使う場合には、これがトラブルの元になるんですよね。。。 そんなときは、セミホステ…
gccだと、-MMD -MPでファイルの依存関係リストを生成してくれます。 ではARMCCではどうすればいいかというと、ARMCC5系か6系かによって与えるオプションが異なります。 ARMCC 5.x ARMCC 5.x系はちょっと複雑です。 --md --no_depend_system_headers --phony_…
普段はVisual StudioなどのIDEを使ってるんですが、場合によってはgcc+makefileを使うこともあります。 特に組み込み向けプログラミングとか。 そんなとき、『あれっ!?Makefileってどう書くんだっけ???』となることがあるので、汎用的に使えるMakefile…
Visual studio 2015 Expressはこちらからダウンロードできるはずなのですが、 Visual Studio Express - Visual Studio Community の試用 画面を下にスクロールして、 からインストーラをダウンロードしてインストールしてみると、、、これ英語版じゃないです…
SourceTree起動時にこんなメッセージが表示されるようになりました。 You selected Mercurial is older than 3.7.3 The Mercurial team strongly encourages all users to upgrade to 3.7.3 or later due to a security vulnerability. Your current configu…
やっとデルファイと C++Builderが無償化されました! デルファイ や C++Builderと言えばライブラリが充実してて簡単にGUIアプリが作れる開発環境です。 これが無料で使えるなんてうれしい! これからのアプリ開発に使ってみようと思います。 ダウンロードは…
Visual C++で開発中にerror C4996またはwarning C4996が出て鬱陶しくなることがあります。 しかも、error C4996、warning C4996はC言語的には問題がないはずなのに出るんですよね。 1>c:\consoleapplication1\consoleapplication1.cpp(19): error C4996: 'st…
chrome拡張を作っていてちょっとはまったのでメモ。 chrome.tabs.executeScript()でスクリプトを実行することができますが、なぜか意味不明の挙動になりました。 原因はconstでした。例えば、 chrome.tabs.executeScript(null, { file: "process.js"}, funct…
javascriptでは、数字文字列に対して数値演算を行うと、文字列を自動的に数値に変換して演算してくれます。 ただし、数値列中にカンマが含まれていると変換が行われません。 こんなときは、以下のようにすればOKです。 function toNumber(str) { return Numb…
WindowsフォームにはコントロールにUpdateメソッドがあって、これを使うと表示を即時更新できました。 が、WPFのコントロールにはUpdateメソッドがありません。 そんなときは、これを使えばOKです。 WPF再描画のためのDoEventsメソッド ・ GitHub https://gi…
C++/CLIでWindowフォームアプリを作っていて、ウインドウハンドルやインスタンスを取得したいことがあります。 そんなときはこうすればOKです。 ウインドウハンドルの取得 HWND hWnd = (HWND)this->Handle.ToInt32(); インスタンスの取得 HINSTANCE hInst = …
ライブラリのリンクを指定する場合、普通はプロジェクトの設定で指定しますが、ちょっと面倒です。 実は、もっと手軽にソースファイル中でライブラリを指定することができます。 ソース中でライブラリを指定する方法 #pragma commentを使えばライブラリを指…
C言語で二次元配列を関数に渡して、関数内でも二次元配列としてアクセスしたくなったので、やり方を調べてみました。 二次元配列のポインタは (*p)[] でOKです。 サンプルコードをどうぞ void hoge(int (*p)[3]) { printf("%d, %d, %d\n", p[0][0], p[0][1],…
久々にVisual C++ 2010 Expressを使う機会があったのですが、ビルドするとこんなエラーが。 LINK : fatal error LNK1123: COFF への変換中に障害が発生しました: ファイルが無効であるか、または壊れています。 どうやらSP1がインストールされていない場合に…
過去のDirectX SDKを使いたくなり日本マイクロソフトのHPを探しましたが見当たらず。 いろいろ探し回ってやっと見つけました。 direct x 9 sdk - Search Microsoft.com やっぱりこういうときはUSサイトを調べないとだめですね。 DirectX 8.1 SDKが欲しい方は…
C言語の規格では、malloc()した領域は不定値になっています。 malloc()は単にメモリ領域を割り当てるだけなので、malloc()で返される領域にはその前に書き込まれていたデータがそのまま残っています。 ただ、最近の環境ではちょっと事情が違うようです。 最…
Intel Parallel Studio XEって知ってますか? これは、Intelが自社CPUの性能を最大限発揮するために開発したコンパイラです。 Intel AVXや、米国標準暗号方式であるAES命令にも対応しており、Intel CPUの性能を最大限引き出すことができます。 更に、SIMD命…
最近はEclipseベースのIDEもよくみかけますが、やっぱり開発環境としてはVisual Studioが一番使いやすい! そんなVisual Studioの次のバージョンVisual Studio 2015ではWindows用だけでなく、iOSやAndroid、それにLinuxアプリも作れるそうです。 Microsoft、…