- 0
- 0
- 约2.64千字
- 约 4页
- 2021-04-13 发布于天津
- 举报
Linux 下单独编译一个模块
模块编译及 makefile
|字号大2010-05-07 14:38:02| 分类: 个人日记 | 标签:
|字号大
周四。
加任务了,调试 GT 系列的串口程序,根据外面出问题
的点位反应的现象描述是, 232 设备死了,应用层重新打开 设备也没有数据接收, 232 中断无增加
初步判断肯定是 232 处理逻辑出了问题,中
断无增加,
说明已经进入某种错误状态了。
我的初步判断是某些错误状态没有处理,导致设备一直
处于错误状态,因为设备使用了发送和接收的fifo
处于错误状态,因为设备使用了发送和接收的
fifo 和中断处
理,我觉得很可能是寄存器 LSR、FSR 等 status 错误位没有
清掉,因为看代码,中断处理过程当中确实也只有响应中断
清掉,因为看代码,
中断处理过程当中确实也只有响应中断
但是不加以处理。
我们的模块全部是编译进内核的,所以如果不升级处
理,是没有办法调试的。现在我能想到的和正在做的就是把 这些模块重新加载, 用 insmod 再次初始化这些模块, 然后去 查看模块寄存器的状态,并争取找到原因。因为一旦变成内 核的模块,很多原来不能操作的资源也就开放了。
现在首先要做的就是编译单独的 .ko 模块,并用 insmod
加载,并在该对应的模块上增加若干可以查询和设置寄存器 状态的操作。
用 make menuconfig 可以修改模块编译方式、进内核、 预留模块方式或者完全不在内核工程中编译。
1,首先如果选择预留模块方式编译, make uImage 不会 把该模块编译进内核,但是会把模块用 make module 的方式 编译出来,可以 insmod 了直接。
2,如果想脱离原来的内核,建立单独的工程,写自己
的 makefie 单独编译成模块, 需要这么做。 a, 把需要的 .c 和对
应要包含的.h文件拉出来单独放在一起。 b,写一个 makefile , 它很可能是这样子的:
obj-m := davinci_rs232_uart1.o #kernel_dir := /lib/modules/$(shell uname -r)/build kernel_dir := /home/driver_zhangm/ti-davinci_DMEM/ pwd := $(shell pwd) all:
$(MAKE) -C $(kernel_dir) M=$(pwd) modules
至于为什么是这样子的,我暂时还不理解。只能说一下我当 前的理解。
首先,目标文件必须定义为 obj-m = %.c 文件对应的 %.o 文件,
obj-m 不能换成其他类似 bin 之类的名字, 试过了不行, %也
必须完全匹配。有没有其他替代方法暂时不知道。只能确定 这些要求是内核 makefie 定义的环境变量要求的。
其次,内核 dir 指定了编译内核的目录路径。如果要编译成 直接加载到当前操作系统能够运行的模块就采用注释掉那 行路径。否则就要采用当前运行的 uImage 编译的路径 再者 pwd 制定了放置目标文件的路径,最后一行是执行命 令,采用之前定义的内核路径、 环境变量的 MAKE 和放置路 径等就可以了 Linux 下单独编译一个模块声明:本文综合 些网络文摘而成一,引例:比如声卡 Irq 和 IO 不对 ,可到 /usr/src/linux/drivers/sound 目录下 .
gcc -o configure configure.c ./configure
选好 IO,IRQ 等等 , make cp sound.o /lib/modules/2.0.34/misc rmmod sound insmod sound init_trace=1
测试一下 .
直到成功为止 .
这样可比在 /usr/src/linux 下 , make menuconfig ;
make dep;make clean;make zImage; 好多了 . 二,另外几篇文章的总结:尝试编译一个 CMI 的声卡驱动模块 1.在 /usr/src/linux-xxxx/configs 目录下有若干编译内核所用的配 置。我们每次保存的配置存放于此,选择我们想要的配置, 将它复制到 /usr/src/linux-xxxx 目录下,改名为 .config 。 cp /usr/src/linux-xxxx/configs/kernel-2.4.19-arm.config /usr/src/linux-xxxx/.config 在 /usr/src/linux-xxxx/ 目录下 的.config文件中,能看到 CONFIG_XXXX_XXXX = y或者 #CONFIG_XXXX_XXXX
您可能关注的文档
- I:统计(文科2013年)Word版含答案.docx
- J61Y--32高压截止阀检修作业指导书32以下分析.docx
- Java信息管理系统开发模式设计.docx
- Java工程师考试题(答案).docx
- Java教学实践与编程思维培养-精品文档.docx
- java程序员面试大纲错过了金三银四你还要错过2018吗.docx
- Java调用外部程序解决方案.docx
- JBoss教程(学习简明手册).docx
- JohnGalliano时期Dior品牌色彩研究.docx
- jvm介绍(很好的一篇文章).docx
- 2025-2026学年科普版七年级下册英语Unit7 Being a Smart Shopper素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit10 Lending a Helping Hand素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit11 Rules Matter素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit12 Better Together素养测评卷(含答案).docx
- 2026年中考英语语法选择专题训练(含答案).docx
- 2026中考语文二轮学思并重,涵养君子之德论语十二章、虽有佳肴、大道之行也.docx
- 中考文言文常见文化常识梳理.docx
- 中考语文二轮:内修君子德外尽忠臣心诚子书出师表修身立德主题学习.docx
- 中考语文二轮:不一样的求学路一样的成长梦送东阳马生序劝学主题学习.docx
- 中考语文二轮:《陋室铭》《爱莲说》托物寓意主题学习.docx
最近下载
- 中国神经外科重症患者气道管理专家共识(2025版).docx
- 《农产品区域公用品牌评价指南》.docx VIP
- 中央储备粮通辽直属库余粮堡分库新建储备仓施工项目施组设计.doc VIP
- 危险化学品安全知识培训.pptx VIP
- 中央储备粮唐山直属库油脂油料仓储物流项目三期工程施工组织设计最新.doc VIP
- 承包人自行施工范围内拟分包的非主体和非关键性工作.doc VIP
- 中央储备粮遂宁直属库有限公司搬迁项目滑模施工方案.docx VIP
- 危险化学品安全知识与处理培训.ppt VIP
- 方正证券-信息技术-OpenClaw赋能金融投研-17个高效应用案例详解——AI Agent赋能金融投研应用系列之三.pdf VIP
- 高二生物第一次月考卷【测试范围:苏教版2019选择性必修2第1章~第2章】(考试版).docx VIP
原创力文档

文档评论(0)