原创 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信號表

信號本質 信號是在軟件層次上對中斷機制的一種模擬,在原理上,一個進程收到一個信號與處理器收到一箇中斷請求可以說是一樣的。信號是異步的,一個進程不必通過任何操作來等待信號的到達,事實上,進程也不知道信號到底什麼時候到達。 信號是進程間通信機