メモ置き場

メモ置き場です.開発したものや調べたことについて書きます.

[tex: ]

Rustでグローバル変数の実現

最近はRustの勉強をしている。 Rustはコンパイル時にいい感じにメモリ管理ができる一方で、C++とかで実現できることが簡単にできなくなっている。 ミュータブルなグローバル変数(とくにシングルトン)を実現したかったので、その方法をメモしておく。

CADDi C++勉強会に参加した

C++

CADDiさんが開催しているC++勉強会に参加してきたので,その覚書. type eraser expression template についての話.

C++の可変長テンプレートを使って多次元配列を実装する

C++

元ネタはこれc++ - Variadic Templates Multidimensional Array Container - Stack Overflowint a[10][20]とかdouble b[1][2][3][4]のように,多次元配列を可変長テンプレートを使って実装する. array&ltint,10,20> aやarray&ltint,1,2,3,4> bと書くことで…

C++の左辺値と右辺値

C++

C++の左辺値と右辺値について勉強したのでまとめておく.参考にしたサイト 本の虫: rvalue reference 完全解説 C++11 Tutorial – thispointer.com

C++のテンプレートクラスでoperatorをオーバーロードする

C++

C++でテンプレートクラスに 演算子をオーバーロードしてcoutに出力しようとしたら思ったより大変だったので,メモしておく. 普通のクラスに対して をオーバーロードしようとすると,クラス定義内でfriend宣言してからオーバーロードすることが一般的だと思…

ソフトバンク光と市販ルータを組み合わせて家のネットワークにVPN接続できるようにする

家にVPN接続できるようになったので,使用環境や設定方法についてまとめておく. VPN使いたい!って人の参考に慣れば幸いです.

Websocketでバイナリデータを送る

この記事とこの記事でWebsocketを実現する方法を書いた. 参考にしたコードはこちら.このサンプルコードでは,lws_write関数の第3引数にLWS_WRITE_TEXTが指定されていることからわかるように,Websocketから送られてくるデータはテキストデータとなっている…

libwebsocketを使ってZynqにWebsocketサーバを実装してみる:JavaScript編

前回の記事でWebsocketサーバーをC言語で実装する方法を書いた.今回はクライアント側のアプリケーションとして,JavaScriptでWebsocket通信を行う方法についてまとめておく.

libwebsocketを使ってZynqにWebsocketサーバを実装してみる:C言語編

ZynqとWebsocketを組み合わせてリアルタイムモニターシステムを構築したという記事を書いた.Websocketサーバをどのように実装したかについてメモを残しておく.このgithubのコードを基本としてサーバを実装した.このページでは,上記コードを例にとってど…

HHKBを買った! Ubuntu18.04で使うときの設定

HHKBを購入しました! 購入したのはHappy Hacking Keyboard Professinal2の墨. キータッチが非常に軽く,キーの配置もコンパクトで非常にタイピングしやすいキーボード.Ubuntu18.04に接続して使うときの設定方法を残しておく.

ZynqとWebsocketでリアルタイムデータ処理システムを構築

ZynqとWebsocketを使って,FPGA上のデータをウェブブラウザからリアルタイムに見られるようなシステムを作った.youtu.beこの記事では全体の概要だけ説明して,細かい実装については別の記事にしていこうと思う.

Javaの勉強(6):ラムダ式

Javaでラムダ式を使ってみる. 匿名クラス ラムダ式 関数型インターフェース

Javaでスーパークラスにサブクラスを返すメソッドを用意してみる

Javaの勉強をしていて,ふと疑問になったことがある.JavaにはObjectクラスというものがあり,ObjectクラスにはにはStringを返すtoStringメソッドがある.一方で,StringクラスはスーパークラスとしてObjectクラスを持つ.つまり,Stringクラスの定義にはObj…

Javaの勉強(5):スレッド

Javaのスレッドについてまとめておく スレッドとは スレッドの状態 sleepメソッド スレッドの作成 Threadクラスでよく使うメソッド ExecutorServiceインターフェース ExecutorServiceでよく使うメソッド 排他制御 スレッドの制御 interrupt 同期制御

Javaの勉強(4):例外処理

プログラム実行時の不具合を例外という.例外をそのままにしてしまうと,プログラムが強制終了してしまいよくない.例外にたいする処理のことを「例外処理」という.Javaでどのように例外処理が行われているかについてまとめておく. 例外処理の方法 例外ク…

Javaの勉強(3):ポリモフィズム

Javaのポリモフィズムについてまとめておく ポリモフィズムとは abstract class(抽象クラス) abstract method(抽象メソッド) インターフェース キャスト 参照型のキャスト Object型 ポリモフィズムの例

Javaの勉強(2):継承

Javaの継承についてまとめておく. 継承とは スーパークラスとサブクラス 多重継承 Objectクラス 継承のやり方 superとthis オーバーライド @Overrideについて final演算子

Javaの勉強(1)

Javaの研修が始まったので,自分のためにもまとめておく. 何回かに分けて書こうと思う.最近はZynqをさわれていないし更新頻度も落ちてしまった. けれども,ありがたいことにブログを見に来てくれている人たちが一定数いるみたいです.励みになります.頑…

入社しました

今日からエンジニアとして勤務します.新卒採用で,しばらくは研修が続く予定です.今までより使える時間は少なくなってしまいますが,これからもうまく時間を作ってブログを更新していきたいです.

カーネルモジュールをブート時に自動で読み込む

以前Zynqでdevice tree overlayを試す記事を書いた. ZynqでDevice Tree Overlayを使う - メモ置き場 その中でikwzmさんのdtbocfgというカーネルモジュールをロードする必要がある.今まではZynqをブートするたびにモジュールを手作業でインストールしていた…

ZYNQでAXI DMAを試してみる

ZYNQで超単純なAXI DMAを試してみる.AXI DMAとはAXIバスを使ったDirect Memory Accessのことで,PSを介さずにPL部分からメモリ(ZYBO-Z7の場合はDDR3メモリ)にデータを転送する方法のことである.XilinxからはAXI Direct Memory AccessというIPが提供されて…

FPGA Regionを使ってZYNQのPLを変更する

以前の記事で,FPGA Managerを使ってZYNQのPLを動的に変更する方法を紹介した. Device Tree OverlayとFPGA Managerを使ってZynqの構成をLinuxから更新する - メモ置き場記事を公開してからすぐにTwitterでikwzmさんからこんなリプライを頂いていた.この記…

パソコンを使う時間を制限したい!Linux編

パソコンでネットサーフィンをしていると知らないうちに10時間くらい経っていた,なんてことはザラにある. 人生の限られた時間を有効に使うため,パソコンを立ち上げてから一定時間たったら強制的に電源を落とす,という設定をする.Linuxユーザ向けの話.

親知らずを抜いたときのメモ

最近ちょっと調子が悪く,更新頻度が落ちている. というのも親知らずを抜いて,なんかずっとグズっていたため.これから抜歯に立ち向かう人の参考になればと思い,抜いた後の様子などをメモしておく.

ZYBO-Z7でPcam-5Cのデモをやった

そろそろZynqのPLも触っていきたい,ということでPcamのデモを動かしてみた. reference.digilentinc.com本当にデモを動かしただけなので,オリジナリティは何もない.

Device Tree OverlayとFPGA Managerを使ってZynqの構成をLinuxから更新する

ZynqのLinuxからの操作で,Zynqの構成を更新してみる. 必要な準備は Device Tree Overlay ZynqでDevice Tree Overlayを使う - メモ置き場 FPGA Manager ZynqでFPGA Managerを使う - メモ置き場 の2つが使えるようになっていること.過去の記事を参考に使え…

ZynqでFPGA Managerを使う

FPGA Managerを使うと,Linux側から(つまりZynqのPS側から)FPGAを書き換えることができる.Xilinxが提供するLinuxでは/dev/xdevcfgというデバイスドライバがあって,ここにbitstreamファイルをcatで書き込むとPLを書き換えることができる. 今回はこのxdevcf…

ZynqでDevice Tree Overlayを使う

qiita.comikwzmさんの記事を参考にZynqでDevice Tree Overlayを使ってみた. Device Tree Overlayとは,Linux kernelを起動したままdevice treeを新たに追加することのできる機能である.

ZynqのLinux kernelを更新する

ZynqのLinux kernelを更新する方法についてまとめておく.kernelのバージョンを確認するにはunameコマンドを使う. Xilinxが提供しているkernelでは aho@zynq:~$ uname -r 4.10.0-xilinx となり,4.10.0のkernelが動いていることがわかる(2019年1月現在).

ZynqでAXI GPIOを使ってLチカ

Zynq搭載ボードZYBO-Z7-20を使ってLチカをする.Linuxの構築や開発環境の準備は Vivado 2018.2とDigilentのボードファイルをUbuntu 18.04にインストール - メモ置き場 ZYBO-Z7でUbuntu 16.04 LTSを動かす - メモ置き場 を参考のこと.デバイスツリーの書き換…