导航:首页 > 编程系统 > linuxdts基本语法

linuxdts基本语法

发布时间:2024-06-25 00:24:23

『壹』 linux dts status status 做什么用

设备在启动的时候,status定义陪前扰为芦旦disabled为不注册;
定义为ok/okay或者为悔州赋值,默认为解析该设备节点

『贰』 编译linux内核设备树文件使用什么命令

Linux源码的arch/powerpc/boot/dts/目录下存放了很多dts文件,可以作为参考文件。另外dtc编译器在内核回源码2.6.25版本之后已经答被包含进去。在2.6.26版本之后,生成blob的简单规则已经加入makefile,如下命令:
$ make ARCH=powerpc canyonlands.dtb

也可以根据自己的硬件修改好dts文件后,用下面类似命令生成dtb文件。
$ dtc -f -I dts -O dtb -R 8 -S 0x3000 test.dts > mpc836x_mds.dtb

$ mkimage -A ppc -O Linux -T flat_dt -C none -a 0x300000 -e 0 -d mpc836x_mds.dtb mpc836x_mds.dtu

『叁』 Linux内核watchdog

本文基于 RockPi 4A 单板 Linux 4.4 内核介绍 RK3399 看门狗( watchdog )的调试方法。

一、驱动文件

RK3399 watchdog 用的是新思( Synopsys )的 IP ,在 watchdog 驱动程序加载时,会注册 misc 设备,节点为 /dev/watchdog 。

驱动文件: drivers/watchdog/dw_wdt.c

二、DTS配置

配置文件: arch/arm64/boot/dts/rockchip/rk3399.dtsi

watchdog 具体配置如下:

三、调试方法

1、关闭看门狗

写入除大写 V 以外的任意字符,不再喂狗,一段时间后系统会重启。

例:

2、打开卡门狗

写入大写 V ,继续喂狗,系统不再重启。

例:

3、CONFIG_WATCHDOG_NOWAYOUT

如果配置了 CONFIG_WATCHDOG_NOWAYOUT ,通过 echo 命令写入任何字符,都不会关闭喂狗。

例:

注:

使用 ./build/mk-kernel.sh rockpi4a 编译内核时,即使修改了 rockchip_linux_defconfig 文件,编译时,相关配置也不会生效。需要在编译前 make distclean 或删除内核根目录下的 .config 文件后,重新编译内核。

『肆』 Linux内核中断之中断调用流程

本文基于 RockPI 4A 单板Linux4.4内核介绍中断调用流程。

ARMv8包括两种运行状态:AArch64和AArch32。

AArch64中不再使用AArch32中的7种特权模式,而是提出了Exception Levels的概念,包括:

1)EL0:用于用户态程序,权限最低

2)EL1:给内核使用,权限稍高

3)EL2:虚拟化相关,权限更高

4)EL3:安全相关,权限最高

Linux内核中一般只使用EL0和EL1。

AArch64异常向量表中的异常包括:

1)Synchronous exception(同步异常)

2)SError

3)IRQ

4)FIQ

注:SError、IRQ和FIQ属于异步异常。

在Linux内核中,在 arch/arm64/kernel/entry.S 文件中定义了异常向量表,内容如下:

选取 el1_irq() 函数介绍Linux内核中断的调用流程。

文件: arch/arm64/kernel/entry.S ,调用流程如下:

1、handle_irq()初始化

在 DTS 解析阶段完成 handle_irq() 函数的初始化,流程如下:

gic_irq_domain_map() 函数中完成了 handle_irq() 函数的赋值,具体执行如下:

2、handle_irq()实现

以共享外设中断 SPI 的中断处理函数 handle_fasteoi_irq() 为例,继续跟踪中断的执行过程。

handle_irq_event_percpu() 函数会调用已经注册的中断处理函数,同时唤醒 irq_thread 线程。

3、中断处理线程

在使用 request_threaded_irq() 函数申请中断时,会创建一个 irq_thread 线程,调用流程如下:

irq_thread 线程平时在睡眠状态,等待 handle_irq_event_percpu() 函数唤醒,进一步执行已注册的中断处理线程函数。

使用 DRM 框架中 HDMI 中断验证中断调用流程。

文件: driversgpudrmridgesynopsysdw-hdmi.c

在中断处理函数 dw_hdmi_hardirq() 和中断处理线程函数 dw_hdmi_irq 中增加 mp_stack() 调用( 注:仅限于调试验证 )。

插入 HDMI 线,系统启动后,显示中断调用流程的日志如下:

『伍』 Linux内核中断之获取中断号

Linux内核中可使用 platform_get_irq() 函数获取 dts 文件中设置的中断号。

函数原型: int platform_get_irq(struct platform_device *dev, unsigned int num)

定义文件: driversaseplatform.c

中断号获取函数 platform_get_irq() 调用流程如下:

rk3399 使用的是 GICv3 ,对应 irq_domain->name 。

文件: drivers/irqchip/irq-gic-v3.c 。

translate() 函数实现如下:

以 RockPI 4A 单板 Debian 系统Linux 4.4内核中的获取 HDMI 中断号为例。

1、查找中断号

从手册“Rockchip RK3399 TRM V1.3 Part1.pdf”中,可以查到 HDMI_IRQ 中断号,即55。

2、 dts 配置

文件: arch/arm64/boot/dts/rockchip/rk3399.dtsi

hdmi 使用的是 GIC_SPI 中断,按照 gic_irq_domain_translate() 函数中处理,需要将中断号55减去32,得到 dts 中的中断号23。

注: interrupts = <中断类型 中断号 中断触发类型 中断分区(对应哪个CPU cluster,PPI类型中断特有)>

3、驱动函数

文件: driversgpudrm ockchipdw_hdmi-rockchip.c

此时, irq 返回值为55。

后续会介绍 GIC 和中断注册等实现函数。

『陆』 arm linux dts鎬庝箞閰嶇疆ddr3

FDT鏄疉RM Linux鏈鏂扮殑璁惧囬┍鍔ㄧ▼搴忎俊鎭琛锛屼娇鐢‵DT鐨勫唴鏍革紝灏变笉鐢ㄥ儚杩囧幓鐨勫唴鏍搁偅鏍凤紝涓涓鏉垮瓙鍔犱竴涓猰ach鐨凜鏂囦欢锛屾墍鏈夌殑璁惧囦俊鎭鍙浠ヨ板綍鍦ㄤ竴涓鏍戠姸淇℃伅鏂囦欢閲岄潰銆 鐩鍓嶈繖鏂归潰璧勬枡姣旇緝灏戯紝鎴戜互AM335x澶勭悊鍣ㄤ负渚嬫傛嫭涓涓婩DT鐨勪娇鐢锛 FDT浠呬粎鏄涓涓淇℃伅鐨勭洰褰曞拰鍙傛暟琛锛岃佷娇鐢ㄦ煇涓鍔熻兘鍐呮牳涓杩樺繀椤绘湁鐩稿簲鐨勯┍鍔ㄧ▼搴忎唬鐮 FDT鐨勬簮鏂囦欢浣嶇疆鍦锛歛rch/arm/boot/dts锛屼緥濡傦紝TI鐨凚eagle bone black锛屾簮鏂囦欢鏄痑rch/arm/boot/dts/am335x_boneblack.dts FDT鍦╩ake ARCH=arm鐨勬椂鍊欏氨浼氳嚜鍔ㄧ敓鎴愶紝涔熷彲鐢╩ake ARCH=arm dtbs鏉ョ敓鎴愶紝渚嬪俆I鐨凚eagle bone black鐢熸垚鐨勬枃浠舵槸arch/arm/boot/dts/am335x_boneblack.dtb锛岃繖鏄涓涓浜岃繘鍒舵枃浠 瑕佹兂鏂板炰綘鑷瀹氫箟鐨凢DT锛岃蜂慨鏀筧rch/arm/boot/dts/Makefile锛屽苟鍦ㄧ浉搴旂殑Kconfig涓澧炲姞config閫夐」锛屼緥濡

『柒』 openwrt怎么修改linux的dts文件

在linux下要修改文件,一般较常用的命令是vi,格式如下:vi
[文件]。
以楼主的文件为例,vi
/etc/passwd

『捌』 瀹夊崜dts涓巐inuxdts

瀹夊崜dts涓巐inuxdts鏄涓や釜涓嶅悓鐨勬傚康銆傚敖绠′袱鑰呴兘浣跨敤dts浣滀负鏂囦欢鎵╁睍鍚嶏紝骞朵笖閮界敤浜庢弿杩扮‖浠惰惧囩殑淇℃伅锛屼絾Androiddts鍜孡inuxdts鏄閽堝逛笉鍚屾搷浣滅郴缁熺殑涓嶅悓瀹炵幇銆侫ndroiddts涓昏佺敤浜庢弿杩癆ndroid璁惧囩‖浠朵笌Android鎿嶄綔绯荤粺涔嬮棿鐨勫叧绯伙紝鑰孡inuxdts涓昏佺敤浜庢弿杩癓inux鍐呮牳涓庣‖浠朵箣闂寸殑鍏崇郴銆

阅读全文

与linuxdts基本语法相关的资料

热点内容
文件服务器中毒 浏览:721
如何修改网站访问次数 浏览:518
mdfldf是什么文件 浏览:569
文件在桌面怎么删除干净 浏览:439
马兰士67cd机版本 浏览:542
javaweb爬虫程序 浏览:537
word中千位分隔符 浏览:392
迷你编程七天任务的地图怎么过 浏览:844
word2003格式不对 浏览:86
百度云怎么编辑文件在哪里 浏览:304
起名app数据哪里来的 浏览:888
微信怎么去泡妞 浏览:52
百度广告html代码 浏览:244
qq浏览器转换完成后的文件在哪里 浏览:623
jsp中的session 浏览:621
压缩完了文件去哪里找 浏览:380
武装突袭3浩方联机版本 浏览:674
网络机顶盒移动网络 浏览:391
iphone手机百度云怎么保存到qq 浏览:148
数据库设计与实践读后感 浏览:112

友情链接