工具/软件:Linux
早上好、
我已将内核升级到主线版本4.9.13、同时仍在使用 TI SDK 3.00.04。 除了我在 SDK 3.00.04中为4.4.12内核创建的自定义 eCAP 驱动程序不能与4.9.13配合使用外、它似乎对所有功能都非常有效。 我意识到这个问题可能有点超出这个论坛的范围、但如果您有任何建议、请告诉我。
驱动程序在尝试使用 oread32读取寄存器值时失败。 它似乎能够映射存储器并正确写入存储器、但在 oread32命令中始终失败。 在使用主线4.9.13内核时、我是否可以忽略任何内容? (请注意、我已针对4.9.13内核源编译了我的驱动程序)
这是我的源代码和内核输出的一个片段。
谢谢!
Chris
if (request_mem_region (pwmss_phys_addr、ioremap_temp_size、"ECAP")= NULL){
printk (kern_alert "eCAP:无法请求内存区域\n");
返回-1;
}
pwmss_addr = ioremap (pwmss_phys_addr、ioremap_temp_size);
if (pwmss_addr = NULL){
printk (kern_alert "eCAP:从 ioremap\n"返回的空指针);
返回-1;
}
printk (kern_info "eCAP:pwms_addr 映射到%p\n"、pwmss_addr);//指针已初始化!
printk (Kern_info "eCAP:准备写入寄存器\n");
iowrite32 (0x101、pwmss_addr + pwmss_clock_cfg_addr);
printk (Kern_info "eCAP:准备从寄存器读取\n");
pwmss_clock_cfg = oread32 (pwmss_addr + pwmss_clock_cfg_addr);
printk (kern_info "eCAP:最终 pwmss 时钟配置0x%08x\n"、pwmss_clock_cfg);
[44.088966] eCAP:已正确注册器件类
[44.111539] eCAP:已正确创建器件类
[44.116367] eCAP:pwmss_addr 映射到 fa300000
[44.143974] eCAP:准备写入寄存器
[44.155306] eCAP:准备读取寄存器
[44.166994]未处理的故障:在0xfa300008处非线性蚀刻(0x1028)上的外部中止
[44.174709] PgD = cbd20000
[44.177428][Fa300008]* PgD=48211452 (BAD)
[44.181478]内部错误:1028 [#1]抢占 ARM
[44.186377]链接的模块:ecap_driver (O+) rtl8xxxu rtl8192cu rtl_usb rtl8192c_common rtlwifi musb_dsps musbcore ti_am335x_adc omap_crypto_engine omap_sha_rng rng_musb_musb_hdr ti_am335x_adt_am335x_adc_omap_ad_am335_dc
[44.208000] CPU:0 PID:573通信:调制探针污染:G O 4.9.13 #2
[44.215254]硬件名称:通用 AM33XX (平展器件树)
[44.221374]任务:cbc08900 task.stack:cbcba000
[44.225950] PC 处于 ECAP_INIT+0x240/0x260 [ECAP_DRIVER]
[44.231291] LR 位于 ECAP_INIT+0x23c/0x260 [ECAP_DRIVER]
[44.23629]电脑:[ ] LR:[ ] PSR:600f0013
[44.2366629] sp:cbbbdd8 IP:00000000 FP:00000124
[44.248158] R10:00000000 R9:00000001 R8:cf7c9900
[44.253406] r7:cf7c9908 r6:fa300000 r5:fa300000 r4:bf119840
[44.259960] r3:fa300000 r2:00000000 r1:c0f440 r0:00000025
[44.266517]标志:模式 SVC_32 ISA ARM 段无时 FIQ 上的 nZCv IRQ
[44.27364]控制:10c5387d 表:8bd20019 DAC:00000051
[44.279453]过程调制探针(pid:573、栈限制= 0xcbcbba210)
[44.285573]堆栈:(0xcbcbbdd8至0xcbcbc000)
[44.289951] bdc0:00000000 cbbf5380
[44.298171] bde0:ffffe000 bf11b000 cf7c98c0 c0101760 c0c38600 00000000 0040003f cf02f018
[44.306392] be00:00000004 bf119688 00000000 cb855840 0040003e cff53e74 cbba000 cf001e40
[44.314611] BE20:cbbf5a40 c01dc910 00017530 cff53e74 cbcbba000 cf001e40 cbbf5380 c0181638
[44.322831] be40:bf119640 00000001 cf7c98c0 cf7c9908 cf7c9900 00000001 3083671c c01a284c
[44.331050] be60:00000001 bf119640 cbbf54 00000001 bf119640 c0181640 bf11964c 00007fff
[44.339269] be80:bf119640 c017eba8 ca306090 bf119688 00000000 bf1197fc 000004d8 bf11964c
[44.347488] bea0:c0803df8 00000000 c09a1b1c c09a1b80 c09a1b28 cbbbf44 0000238c c01fe5a4
[44.355707] bec0:0000238c 00000000 c01fect4c 00000000 00000000 00000000 00000000 00000000 00000000
[44.363925] bee0:00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[44.372145] bf00:00000000 00000000 7ffffff 00000000 00000003 0002925c 0000017b c0107924
[44.380363] bf20:cbcbba000 00000000 0003b1f0 c0181c20 7ffffff 00000000 0003 00000001
[44.388583] bf40:cb8550c0 d0ccb000 0000238c 00000000 00000002 d0ccb000 0000238c d0ccceb4
[44.396801] bf60:d0ccc06f d0ccc7e4 00000858 00000b78 00000000 00000000 00000b80
[44.405020] bf80:0000001d 0000001e 00000015 00000012 00000010 00000000 00000000 0003a730
[44.413240] bfa0:00000000 c0107760 00000000 0003a730 00000003 0002925c 00000000 00000000 00000000
[44.421458] bfc0:00000000 0003a730 00000000 0000017b 0003b380 00000000 0003b1f0
[44.429678] bfe0:be88f8e0 be88f8d0 0001f5a4 b6f42df2 80030 00000003 00000000 00000000
[44.437940][ ](ECAP_init [ECAP_DRIVER])、来自[ ](do_one _initcall+0x44/0x174)
[44.446865][ ](多个_initcall)、来自[ ](DO_INIT_MODULE+0x60/0x394)
[44.455011] ](DO_INIT_MODULE)从[ ](LOAD_MODULE+0x1d24/0x20f4)
[44.463062][ ](LOAD_MODULE)从[ ](sys_finit 模块+0xa8/bb8)
[44.470940][ ](sys_finIT_module)从[ ](RET_FAST_SYSCALL+0x0/0x3c)
[44.479162]代码:e3090500 e34b0f11 eb421c88 e5943004 (e5931008)
[44.485285]--[结束线迹 de281cb9e1708773]--