跳至正文

Yen-Chin, Lee

關於 Emacs、Clojure、Linux 與開發工具的筆記。

coldnew's blog

zybo board 開發記錄: Zynq 與 LED 閃爍控制

在 zybo board 開發記錄: 透過可程式邏輯控制 LED 閃爍 一文中我們說到了怎樣純粹使用 可程式邏輯 (Programmable Logic, PL) 去控制 Zybo board 上面的四個 LED 燈 (LD0 ~ LD3),接下來就讓我們透過 Zynq 上的 ARM 處理器來作到同樣的一件事情吧。 (本文以 Vivado 2016.2 進行開發) 本文主要參考自 Digilentinc 的 Getting Start Guide 並加入我自己試玩的一些心得。 開發目標 我們要透過 Zynq 上的 ARM 處理器,也就是 處理系統 (Processing System, PS)…

閱讀全文 »

zybo board 開發記錄: 透過可程式邏輯控制 LED 閃爍

在進入到這種混搭 ARM/FPGA 的開發板的世界之前,很多人都是從純粹的 FPGA 開發板玩起,因此也讓我們看看如何僅透過可程式邏輯(Programmable Logic, PL) 來對 Zybo board 上面的 LED 進行閃爍控制。 (本文以 Vivado 2016.2 進行開發) 本文將採用業界比較常用的 Verilog 進行示範。 開發目標 我們要透過純粹的可程式邏輯(Programmable Logic, PL) 去控制 LED,也就是說,我們只寫硬體描述語言 Verilog 來控制 Zybo board 上面的 LED,讓他依照我們設定的頻率進行閃爍/亮滅。 根據 ZYBO …

閱讀全文 »

zybo board 開發記錄: 讓 Vivado 有 Zybo Board 的設定檔

在透過 Vivado 去建立新的專案的時候,開發板沒有 Zybo Board 的選項可以選,我們就必須自己去設定關於 Zybo Board 的資訊。幸好, Digilentinc 針對這個問題有提供關於 Zybo Board 的設定檔,就讓我們來搞定他吧。 關於 Zybo Board 的設定檔可以在 Digilentinc 的 GitHub 上找到 下載設定檔 我們可以透過 git 或是直接下載 Digilentinc 位於 GitHub 的 設定檔 ,這邊採用 wget 進行下載。 下載完成後,將其解壓 你會看到裡面有以下內容,實際上這份壓縮包包含了所有 Digilentinc 設計的 Xi…

閱讀全文 »

zybo board 開發記錄: Xilinx SDK 在 Linux 的一些注意事項

在使用 Xilinx 的開發環境 Vivado 2016.1 有遇到一些問題,特別紀錄之。 (Xilinx 的開發環境 Vivado 使用 Java 開發,而 Altera 的 Quartus 使用 Qt 開發,以我遇到的狀況來說,後者在 Linux 上的體驗好多了。) 安裝 Vivado 在其他的 Linux 平台 Vivado 安裝程式在非官方支援的 Linux 平台上可能會導致安裝出問題,以我的 Gentoo Linux 為例,我必須把解壓出的 xsetup 安裝腳本裡面的這部分修改掉,不然會在 64bit 並具有 32bit 函式庫的 Gentoo Linux 下安裝失敗。 讓 Lin…

閱讀全文 »

zybo board 開發記錄: 升級 Digilent 提供的設計檔

Digilent 針對 Zybo board 用於 Embedded Linux 的環境上,提供了一個預先定義好接腳的設定檔 (zybobasesystem), 早期的版本 是直接將專案打包起來釋出,後期則採用 git 去進行維護,其專案位於 GitHub 上。 由於 Digilent 提供的 git 版本的 Zybo board 設定檔 會因為 Xilinx 的 Vivado 開發工具的版本升級而變成版本不匹配的狀況,本文將紀錄如何對該設定檔進行升級並產生我們的專案。 在撰寫本文時,該設定檔 commit id 為 177c2c ,使用的是 Vivado 2015.4 版本, 我們要將它升級…

閱讀全文 »

zybo board 開發記錄: 硬體認識

為了學習 RISC-V 以及體驗看看 Xilinx 的開發平台,最近我入手了 Zybo Board ,這是一塊具有 FPGA 同時又包含了 ARM Cortex-A9 雙核心的開發板。 在我們開始這一切之前,我們需要稍微了解一下這片開發板以及他的週邊等資訊。 要了解 Zybo Board 的週邊,首先要看的就是開發商 DIGILENT 所提供的 ZYBO FPGA Board Reference Manual。 讓我們來看看一些比較重要的地方吧! 基本硬體認識 拿到手的 Zybo Board 會像下面這個樣子,我們有這些基本的輸入/輸出模組,以及未標示的部份(Pmod),可以做延伸的功能 讓我…

閱讀全文 »

clojure/clojurescript 與 left-pad

最近鬧得沸沸揚揚的事情,大概就是 Azer Koçulu 在 npm 上下架 left-pad這件事,導致許許多多依賴他的 Node.js 專案 不能使用。 就讓我們趁這個機會,看一下我們在 clojure/clojurescript 下到底有沒有需要這個函式庫,或是是否已經有內建可替代的函式可以處理這個功能。 leftpad 做了哪些事? 在我們開始前,讓我們來看看 left-pad 這個函式庫到底多好用,為什麼一堆套件都依賴他。實際上 left-pad 只有短短的幾行,內容如下: 而他的功能也很單純,就是將輸入的東西依據設定,進行 padding 的動作 如何在 clojure 上實作 那…

閱讀全文 »

Zephyr RTOS 開發記錄: Mac OSX 下 SDK 編譯

在 Zephyr RTOS 開發記錄: 基本環境建立 一文中提到了我們如何安裝 Zephyr SDK 到 Linux 系統來進行開發,那如果我想要在 Mac OSX 上面開發要怎麼辦呢? 由於 Zephyr SDK 目前僅提供 Linux 的版本,因此在 Mac OSX 中我們必須自己透過 crosstool-ng 去編譯我們自己的 SDK。 安裝依賴的相關套件 第一步要做的,當然就是安裝相關套件啦,這點我們直接透過 homebrew 來安裝 接下來我們要安裝 GNU 的 grep 命令來替代系統內建的 grep 命令 接著,安裝我們需要用的程式: crosstool-ng 建立編譯環境 安裝…

閱讀全文 »

Zephyr RTOS 開發記錄: 基本環境建立

Zephyr 是 Linux 基金會最近發佈的即時作業系統 (RTOS) 項目,主要用於物聯網以及 IOT 設備,其前身為 Wind River 的 Rocket RTOS。和 Linux Kernel 不同的是,Zephyr 原始碼採用的是 Apache-2.0 授權。 關於更多 Zephyr 相關資訊,請參考 Linux 基金會的 專案網站 或是 LinuxGizmos.com 的報導 。 本文只是記錄我試玩 Zephyr 的一些資訊。 支援的開發版與平台 在撰寫這篇文章時,Zephyr 共支援以下目標與平台: (很可惜這邊列的板子我半片都沒有 Orz...) x86 指令集 Arduin…

閱讀全文 »

使用 Clojure 擷取台灣銀行牌告匯率

最近開始在看理財相關的資訊,畢竟錢一直存著也只是存著,剛好看到了 台灣銀行牌告匯率 的訊息,就讓我們用 Clojure 來寫一個 parser 將這個 HTML 網頁轉換成 Clojure 常用的 edn 格式吧。 本文將簡述如何透過 clj-http 取得 台灣銀行牌告匯率 資訊後,再使用 hickory 對取得網頁的資料進行處理,最後回傳 edn 格式好方便我們未來的 Clojure 程式可以對這些訊息進行處理。 設定我們的目標 在開始寫程式前,先來確立我們的目標。我們希望取得 台灣銀行牌告匯率 的資訊,並將下圖裡面的資料轉換成 Clojure 的 edn 格式。 因此最後我們希望可以得到…

閱讀全文 »
© 2012–2026 Yen-Chin, LeeRSSPowered by Astro