原创 Linux 上程序在終端輸出帶顏色等格式的字符串

如果可以在 terminal 上面印出各中顏色的字符串,可以方便與迅速定位到關鍵信息。 使用定義顏色的 ANSI 轉義碼。格式如下: \x1b[(文字裝飾);(顏色代碼): 文字裝飾 0 1 4 3 正常 加粗 下劃

原创 ARM GIC (二)GICv3 中斷安全態、分組及編程模型

The GICv3 architecture supports the ARM TrustZone technology. Each INTID must be assigned a group and security set

原创 GNU Make工具(三) 文本轉換函數 $origin(...)

Functions for Transforming Text origin $(origin variable) 這個函數作用是返回一個表明變量 varible 是如何定義的字符串。 字符串包括 undefined:未定義的變

原创 ARM Foundation 平臺, DS-5,FVP

仿真模型 https://developer.arm.com/tools-and-software/simulation-models 固定虛擬平臺(FVP)是ARM 公司推出的硬件仿真平臺,用戶開發者在還沒單板的情況下提前進行軟

原创 hexo + github page 搭博客

博客發佈原理 撰寫博客 --> hexo 渲染生成靜態頁面 --> 部署到 github page --> 用戶訪問 GitHub Pages 是由 GitHub 官方提供的一種免費的靜態站點託管服務, 讓我們可以在 GitHu

原创 Ubuntu 18.04 中使用 Postfix 發送郵件

Postfix 之前介紹過使用 Linux 自帶的 mail 來發送郵件 Linux使用mailx通過第三方SMTP發送郵件,帶附件操作。 最近發現 Ubuntu 18.04 中移除了 heirloom-mail1。 Postf

原创 設備樹 DTS & DTB

Device Tree1 A device tree is a tree data structure with nodes that describe the physical devices in a system. 設備

原创 升級 Ubuntu

備份 備份你的數據,備份你的數據,備份你的數據。重要的事情說三遍!!! 升級當前系統安裝的包1 在進行系統升級前,把所有安裝包升級到當前系統的最新版本。 // 更新包信息 sudo apt-get update // 更新包 s

原创 __built_in_xxx 內建函數

內建函數1 編譯器內部實現的函數。通常以 __builtin 開頭。這些函數主要在編譯器內部使用,主要是爲編譯器服務的。內建函數的主要用途如下。 用來處理變長參數列表; 用來處理程序運行異常; 程序的編譯優化、性能優化; 查看函

原创 linker & 鏈接腳本

linker 鏈接器主要有兩個作用: 一是將若干輸入文件(.o文件)根據一定規則合併爲一個輸出文件(例如ELF格式的可執行文件); 一是將符號與地址綁定(當然加載器也要完成這一部分工作)。 關於鏈接器的工作機制可以參考 《Li

原创 qsort 排序函數

排序算法在日常使用中很廣泛,本篇首先關注 stdlib.h 裏的快速排序 qsort 函數。 具體的排序原理暫時按下不表。 qsort1 void qsort (void* base, size_t num, size_t siz

原创 Perl 初探

Perl Perl 是 Practical Extraction and Report Language 的縮寫,可翻譯爲 “實用報表提取語言”。 Perl 借用了C、sed、awk、shell腳本以及很多其他編程語言的特性。最重

原创 ARM 指令 對齊訪問等

跳轉指令 條件執行 條件執行:condition execution 條件標誌:condition flags 條件碼:condition code 根據運算結果更新的條件標誌,來判斷指令的條件碼是否符合條件,符合條件就執行,否則

原创 Linux string.c memcpy等的優化

通用實現 如果在各個 arch 下有相應的實現,則會定義一個 __HAVE_ARCH_XXX 的宏,此時這裏就不會定義通用的實現版本,符號來自 相應的 arch 目錄。 // lib/string.c ... #ifndef __

原创 GCC 內聯彙編

How to Use Inline Assembly Language in C Code1 The asm keyword allows you to embed assembler instructions within C