原创 gcc -fstack protector 原理
zephyr s32k144 linux上見到過stack protector的call stack 打印知道它依賴編譯器的支持, 沒想到zephyr上也添加了支持 摘自gcc官網對這個編譯選項的解釋: -fstack-protecto
原创 jtag dump內存數據
aarch32 linux4.14 zynq-7000 系統概率死機重啓,關掉watchdog後,系統hang住,串口沒打印任何異常log,且串口無法輸入 判斷系統狀態,camera中斷中添加blink led操作,死機的時候中斷無法操作
原创 gdb 調試core dump
1、什麼是coredump: 我們經常聽到大家說到程序core掉了,需要定位解決,這裏說的大部分是指對應程序由於各種異常或者bug導致在運行過程中異常退出或者中止,並且在滿足一定條件下會產生一個叫做core的文件。 通常情
原创 configure 交叉編譯參數定義
下載can-utils源碼後手動編譯的步驟 ./configure CC=arm-linux-gnueabihf-gcc --target=arm-linux --host=arm-linux build:執行代碼編譯的主機,自己的主機
原创 linux kworker
aarch32 linux4.14 最近遇到一個kworker問題,callstack如下,線程adas的陷入kernel space後會schedule_work調用一個while(1)的worker,kill adas後重新啓動ad
原创 ubuntu 無法顯示任務欄菜單欄
原文鏈接:https://blog.csdn.net/fate08301017/article/details/80150691 問題 某次開機後直接彈出上報問題界面,重啓後無法顯示菜單與任務欄
原创 linux rcu stall 分析
linux4.9 aarch32 被rcu 折騰過幾次後決心查明rcu原理和發生cpu stall warning怎麼分析問題,這篇文章的由來是遇到了一個類似如下的kernel cpu stall warning 先查這段warning
原创 linux 線程優先級 rt_prio static_prio prio normal_prio
轉載:https://www.cnblogs.com/tongye/p/9615625.html kthread_create 創建線程的時候是默認的優先級默認的RT線程rt_prio是0,rt_prio範圍是0-99 調整線程優先
原创 linux rt 線程調度
aarch64 linux4.9 最近遇到問題需要trace某個rt線程調度情況 trace event filter: echo 1 > sched/sched_switch/enable echo "next_comm == x
原创 使用TRACE_EVENT trace linux 執行過程
閱讀lwn.net文章 Using the TRACE_EVENT() macro 用qemu 做實驗
原创 arm64 pagetable walke
aarch64 linux4.9 arm64 mmu的 hardware page walke 和kernel中的重要概念 swapper_pg_dir 內核空間level 0頁表物理地址 VA_BITS 39 mmu 看到的虛
原创 linux 臨時頁表
armv8 linux4.9 查看dma map前後mmu page table的變化的時候,有看到有的page table entry映射了2M的size,這個2M的entry是何時建立的,目的是什麼是這邊博客要弄清楚的問題。 arm
原创 linux stack usage debug
from:https://elinux.org/Kernel_Small_Stacks 靜態檢查elf的棧使用空間用kernel自帶的checkstack.pl 靜態檢查elf的調用深度第三方工具stack_size 動態查看每個task
原创 linux copy_from_user實現原理
linux4.9 aarch32 linux fixup table說明: http://cache.baiducontent.com/cm=9d78d513d99d1af31fa7837e7c428c2c5e1697634d91834
原创 linux信號表
信號本質 信號是在軟件層次上對中斷機制的一種模擬,在原理上,一個進程收到一個信號與處理器收到一箇中斷請求可以說是一樣的。信號是異步的,一個進程不必通過任何操作來等待信號的到達,事實上,進程也不知道信號到底什麼時候到達。 信號是進程間通信機