原创 linux kmemleak false positive

linux4.9 aarch32 用kmemleak scan 系統memleak的時候會有一堆的誤報的memleak 的callstack,kmemleak 本身就存在這個缺陷這種誤報稱爲 false positive(假陽性) 用wi

原创 kernel gpio userspace 使用

kernel gpio userspace 使用kernel gpio userspace sysfspoll gpiofd 配合gpio 中斷monitor gpio狀態 kernel gpio userspace sysfs

原创 arm64 memory 屬性 Device-nGnRnE

armv8  dump mmu table的時候有看到memory 屬性Device-nGnRnE 查閱armv8  trm得到如下信息,把memeory 分成兩個類型device 與 normal, device 類型的memory的訪

原创 網絡擁塞控制介紹

原理介紹 Linux操作系統中的流量控制器TC(Traffic Control)用於Linux內核的流量控制,它利用隊列規定建立處理數據包的隊列,並定義隊列中的數據包被髮送的方式, 從而實現對流量的控制。TC模塊實現流量控制功能使用的隊

原创 gdb 內存操作

watch 某個地址的讀寫操作   watch *(int*)0xaaaaa 使用gdb調試程序,讀寫操作是很普遍的事情。其中,讀操作包括: 讀取某個變量的值 讀取某個內存地址裏的內容 讀取某個寄存器的值 對應地,寫操作包括: 修改某個變

原创 zephyr device-tree

zephyr build overview官方說明文檔: https://docs.zephyrproject.org/latest/guides/build/index.html zephyr 也同樣採用了設備樹來描述板級信息,實際使用

原创 arm linux 生成火焰圖

aarch32  arm-linux-gnueabihf-gcc linux4.9 perf wiki:https://perf.wiki.kernel.org/index.php/Tutorial perf 工具生成: cd linu

原创 gdb debug tips

main程序掛掉,沒有積極的log打印出來 上gdb的時候因爲程序的形式不太方便用gdb start.sh export LD_LIBRARY_PATH+***:**** ./test.bin --config test_cfg.txt

原创 insmod ko invalid module format [unknown relocation]

linux版本4.14 aarch32 用如下出錯版本的Makefile編譯basic.ko,insmod ko到kernel後提示invalid module format, dmesg查看內核打印信息 basic: unknown r

原创 gdb 調試不停出現Program received signal SIGTRAP

問題描述: gdb 調試zephyr程序的時候,之前下過的某個斷點,monitor reset 後重新跑,竟然會一直觸發這個斷點,雖然b命令已經列出當前沒有break point,一直卡在這裏 continue 和 next 都走不下去

原创 gdb交叉編譯與編譯參數說明

下載can-utils源碼後手動編譯的步驟 ./configure CC=arm-linux-gnueabihf-gcc --target=arm-linux  --host=arm-linux build:執行代碼編譯的主機,自己的主機

原创 動態鏈接順序

從網上查找知道RPATH的優先級高於LD_LIBRARY_PATH 那LD_LIBARY_PATH中的多個路徑存在同名的so文件的時候bin會選擇哪一個? 用兩個so和一個bin做實驗驗證下上面兩個問題 實驗環境gcc 5.4 ubunt

原创 zephyr 多線程與調度

環境: qemu_cortex_m3 zephyr 1.14.1 zephyr 支持搶佔調度,deadline調度 k_thread_create 創建線程優先級列表 --------- COOP ------- P

原创 linux /etc/mdev.conf配置詳解

採用以下的實例mdev配置寫法在我的arm 板子上並沒有完全奏效,實驗發現我的版本的mdev只會匹配第一條DEVNAME並執行他的規則,匹配第一個後就不在去檢查後面的規則,比如@@兩個對於mmcblk0p1的規則永遠只執行第一個 touc

原创 zephyr qemu環境搭建

zephyr qemu cm3 環境搭建記錄 因爲有一些工具之前已經安裝所以沒有完全按照文檔所說的如下方式 sudo apt install --no-install-recommends git cmake ninja-build g