问题描述
我正在为Linux内核空间编写一个发送SPI数据的模块。 当我尝试使用它时,我在内核日志中得到了错误,并且此后Linux没有响应。
我在Debian中使用Beaglebone黑色。
我做错了什么?
devSpiProtocol.c
的代码
#include <linux/init.h>
#include <linux/err.h>
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/interrupt.h>
#include <linux/mutex.h>
#include <linux/kernel.h>
#include <linux/fcntl.h>
#include <linux/ioctl.h>
#include <asm/uaccess.h>
#include <linux/fs.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/compat.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/acpi.h>
#include <linux/spi/spi.h>
#include <linux/spi/spidev.h>
#include "../devSpiProtocolHeaders.h"
struct spidev_data {
dev_t devt;
spinlock_t spi_lock;
struct spi_device *spi;
struct list_head device_entry;
/* TX/RX buffers are NULL unless this device is open (users > 0) */
struct mutex buf_lock;
unsigned users;
u8 *tx_buffer;
u8 *rx_buffer;
u32 speed_hz;
};
static struct spi_device *spi;
int devSpiProtocol_cmd_read(char *text)
{
printk(KERN_WARNING "devSpiProtocol_cmd_read: %s\n",text);
return 0;
}
EXPORT_SYMBOL_GPL(devSpiProtocol_cmd_read);
int devSpiProtocol_cmd_write(char *text)
{
char ch = 0x61;
struct spi_transfer t = {
.tx_buf = &ch,.len = sizeof(ch),.bits_per_word = 8,.speed_hz = 4000000,};
struct spi_message m;
printk(KERN_WARNING "devSpiProtocol_cmd_write: %s\n",text);
spi_message_init(&m);
spi_message_add_tail(&t,&m);
spi_sync(spi,&m);
//spi_write(spi,&ch,sizeof(ch));
return 0;
}
EXPORT_SYMBOL_GPL(devSpiProtocol_cmd_write);
static int __init devSpiProtocol_init(void)
{
int ret;
const char *device = "/dev/spidev0.0";
struct file* fDevice = filp_open(device,O_RDWR,0);
struct spidev_data* spi_device = fDevice->private_data;
spi = spi_device->spi;
spi->bits_per_word = 8;
spi->max_speed_hz = 4000000;
//spi->chip_select = 0;
spi->mode = 3;
ret = spi_setup( spi );
if( ret ){
printk("FAILED to setup Spi.\n");
return -ENODEV;
}
return 0;
}
static void __exit devSpiProtocol_exit(void)
{
}
module_init(devSpiProtocol_init);
module_exit(devSpiProtocol_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("MB");
MODULE_DESCRIPTION("devSpiProtocol");
代码test_gpio_irq65.c
:
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <asm/uaccess.h>
#include <linux/device.h>
#include <asm/gpio.h>
#include <linux/interrupt.h>
#include <asm/irq.h>
#include <linux/sched.h>
#include <linux/irq.h>
#include <linux/delay.h>
#include "../devSpiProtocolHeaders.h"
MODULE_LICENSE("GPL");
MODULE_AUTHOR("MB");
MODULE_DESCRIPTION("GPIO interrupt sample driver");
#define GPIO_INT 65
#define gpio_int "gpio_int65"
/* local functions */
static int gpio_irq_open (struct inode *inode,struct file *filp);
static int gpio_irq_release (struct inode *inode,struct file *filp);
static int gpio_irq_fasync(int fd,struct file *filp,int on);
static int major;
static struct class *class_gpio_int;
static struct device *dev_gpio_int;
static struct fasync_struct *gpio_irq_async_queue;
/* declare file operation structure */
static struct file_operations gpio_irq_fops = {
.owner = THIS_MODULE,.open = gpio_irq_open,.release = gpio_irq_release,.fasync = gpio_irq_fasync,};
/*Interrupt Handler */
static irqreturn_t gpio_interrupt(int irq,void *dev_id)
{
printk("\n gpio_interrupt; IRQ No : %d\n",irq);
char ta[] ="gpioWrite";
char ts[] ="gpioRead";
devSpiProtocol_cmd_write(ta);
devSpiProtocol_cmd_read(ts);
//kill_fasync(&gpio_irq_async_queue,SIGIO,POLL_IN);
return IRQ_HANDLED;
}
[.....]
devSpiProtocolHeaders.h
的代码
int devSpiProtocol_cmd_read(char *text);
int devSpiProtocol_cmd_write(char *text);
我执行以下命令:
cd ~/
cd protocole/
make
ls -l *.ko
sudo insmod devSpiProtocol.ko
cd ~/
cd interupt/
make
ls -l *.ko
sudo insmod test_gpio_irq65.ko
sudo config-pin P9_17 spi_cs
sudo config-pin P9_18 spi
sudo config-pin P9_21 spi
sudo config-pin P9_22 spi_sclk
tail -f /var/log/kern.log
现在我在GPIO_65上发送“ 1”,并在日志中输入以下内容:
Aug 21 08:29:39 beaglebone kernel: [ 137.754312]
Aug 21 08:29:39 beaglebone kernel: [ 137.754312] gpio_irq_init;
Aug 21 08:29:39 beaglebone kernel: [ 137.754813]
Aug 21 08:29:39 beaglebone kernel: [ 137.754813] gpio_init;
Aug 21 08:29:39 beaglebone kernel: [ 137.754838] gpio_ctrl : GPIO NO: 65 Status 0
Aug 21 08:29:39 beaglebone kernel: [ 137.766260] IRQ is 84
Aug 21 08:29:39 beaglebone kernel: [ 137.768569]
Aug 21 08:29:39 beaglebone kernel: [ 137.768569] gpio_request_irq; IRQ No : 84
Aug 21 08:29:39 beaglebone kernel: [ 137.768689] gpio_request_irq 84 status 0
Aug 21 08:29:39 beaglebone kernel: [ 137.768695] GPIO IRQ device is inserted sucessfully
Aug 21 08:30:12 beaglebone kernel: [ 171.217021]
Aug 21 08:30:12 beaglebone kernel: [ 171.217021] gpio_interrupt; IRQ No : 84
Aug 21 08:30:12 beaglebone kernel: [ 171.217042] devSpiProtocol_cmd_write: gpioWrite
Aug 21 08:30:12 beaglebone kernel: [ 171.217144] BUG: scheduling while atomic: swapper/0/0/0x00010003
Aug 21 08:30:12 beaglebone kernel: [ 171.223193] Modules linked in: test_gpio_irq65(O) devSpiProtocol(O) pru_rproc irq_pruss_intc pruss pm33xx wkup_m3_ipc wkup_m3_rproc remoteproc virtio virtio_ring pruss_soc_bus usb_f_acm u_serial usb_f_ecm usb_f_mass_storage uio_pdrv_genirq usb_f_rndis u_ether uio libcomposite spidev
Aug 21 08:30:12 beaglebone kernel: [ 171.223248] Preemption disabled at:
Aug 21 08:30:12 beaglebone kernel: [ 171.223275] [<c0d38438>] schedule_preempt_disabled+0x28/0x2c
Aug 21 08:30:12 beaglebone kernel: [ 171.226788] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 4.19.94-ti-r42 #1buster
Aug 21 08:30:12 beaglebone kernel: [ 171.226793] Hardware name: Generic AM33XX (Flattened Device Tree)
Aug 21 08:30:12 beaglebone kernel: [ 171.226834] [<c0113e18>] (unwind_backtrace) from [<c010e388>] (show_stack+0x20/0x24)
Aug 21 08:30:12 beaglebone kernel: [ 171.226857] [<c010e388>] (show_stack) from [<c0d20f5c>] (dump_stack+0x8c/0xa0)
Aug 21 08:30:12 beaglebone kernel: [ 171.226878] [<c0d20f5c>] (dump_stack) from [<c0169d34>] (__schedule_bug+0xbc/0xd8)
Aug 21 08:30:12 beaglebone kernel: [ 171.226891] [<c0169d34>] (__schedule_bug) from [<c0d37bc4>] (__schedule+0x7cc/0xa28)
Aug 21 08:30:12 beaglebone kernel: [ 171.226903] [<c0d37bc4>] (__schedule) from [<c0d37e74>] (schedule+0x54/0xbc)
Aug 21 08:30:12 beaglebone kernel: [ 171.226919] [<c0d37e74>] (schedule) from [<c0d3c634>] (schedule_hrtimeout_range_clock+0xe4/0x168)
Aug 21 08:30:12 beaglebone kernel: [ 171.226933] [<c0d3c634>] (schedule_hrtimeout_range_clock) from [<c0d3c6e0>] (schedule_hrtimeout_range+0x28/0x30)
Aug 21 08:30:12 beaglebone kernel: [ 171.226945] [<c0d3c6e0>] (schedule_hrtimeout_range) from [<c0d3bd60>] (usleep_range+0x78/0x9c)
Aug 21 08:30:12 beaglebone kernel: [ 171.226970] [<c0d3bd60>] (usleep_range) from [<c098a300>] (mcspi_wait_for_reg_bit+0x60/0x90)
Aug 21 08:30:12 beaglebone kernel: [ 171.226986] [<c098a300>] (mcspi_wait_for_reg_bit) from [<c098bc00>] (omap2_mcspi_transfer_one+0xf40/0x13b4)
Aug 21 08:30:12 beaglebone kernel: [ 171.227000] [<c098bc00>] (omap2_mcspi_transfer_one) from [<c0988078>] (spi_transfer_one_message+0xfc/0x574)
Aug 21 08:30:12 beaglebone kernel: [ 171.227014] [<c0988078>] (spi_transfer_one_message) from [<c0988880>] (__spi_pump_messages+0x390/0x780)
Aug 21 08:30:12 beaglebone kernel: [ 171.227026] [<c0988880>] (__spi_pump_messages) from [<c0988f00>] (__spi_sync+0x26c/0x274)
Aug 21 08:30:12 beaglebone kernel: [ 171.227037] [<c0988f00>] (__spi_sync) from [<c0988f3c>] (spi_sync+0x34/0x4c)
Aug 21 08:30:12 beaglebone kernel: [ 171.227063] [<c0988f3c>] (spi_sync) from [<bf156108>] (devSpiProtocol_cmd_write+0xdc/0xfc [devSpiProtocol])
Aug 21 08:30:12 beaglebone kernel: [ 171.227105] [<bf156108>] (devSpiProtocol_cmd_write [devSpiProtocol]) from [<bf15e168>] (gpio_interrupt+0x78/0xa0 [test_gpio_irq65])
Aug 21 08:30:12 beaglebone kernel: [ 171.227133] [<bf15e168>] (gpio_interrupt [test_gpio_irq65]) from [<c01ae738>] (__handle_irq_event_percpu+0x84/0x2d0)
Aug 21 08:30:12 beaglebone kernel: [ 171.227149] [<c01ae738>] (__handle_irq_event_percpu) from [<c01ae9c0>] (handle_irq_event_percpu+0x3c/0x90)
Aug 21 08:30:12 beaglebone kernel: [ 171.227163] [<c01ae9c0>] (handle_irq_event_percpu) from [<c01aea5c>] (handle_irq_event+0x48/0x6c)
Aug 21 08:30:12 beaglebone kernel: [ 171.227178] [<c01aea5c>] (handle_irq_event) from [<c01b26ac>] (handle_simple_irq+0xb4/0xcc)
Aug 21 08:30:12 beaglebone kernel: [ 171.227191] [<c01b26ac>] (handle_simple_irq) from [<c01ad7c8>] (generic_handle_irq+0x34/0x44)
Aug 21 08:30:12 beaglebone kernel: [ 171.227211] [<c01ad7c8>] (generic_handle_irq) from [<c079a4f8>] (omap_gpio_irq_handler+0x108/0x160)
Aug 21 08:30:12 beaglebone kernel: [ 171.227226] [<c079a4f8>] (omap_gpio_irq_handler) from [<c01ae738>] (__handle_irq_event_percpu+0x84/0x2d0)
Aug 21 08:30:12 beaglebone kernel: [ 171.227239] [<c01ae738>] (__handle_irq_event_percpu) from [<c01ae9c0>] (handle_irq_event_percpu+0x3c/0x90)
Aug 21 08:30:12 beaglebone kernel: [ 171.227252] [<c01ae9c0>] (handle_irq_event_percpu) from [<c01aea5c>] (handle_irq_event+0x48/0x6c)
Aug 21 08:30:12 beaglebone kernel: [ 171.227263] [<c01aea5c>] (handle_irq_event) from [<c01b299c>] (handle_level_irq+0xdc/0x158)
Aug 21 08:30:12 beaglebone kernel: [ 171.227275] [<c01b299c>] (handle_level_irq) from [<c01ad7c8>] (generic_handle_irq+0x34/0x44)
Aug 21 08:30:12 beaglebone kernel: [ 171.227287] [<c01ad7c8>] (generic_handle_irq) from [<c01adec8>] (__handle_domain_irq+0x8c/0xfc)
Aug 21 08:30:12 beaglebone kernel: [ 171.227303] [<c01adec8>] (__handle_domain_irq) from [<c01022c0>] (omap_intc_handle_irq+0x44/0x9c)
Aug 21 08:30:12 beaglebone kernel: [ 171.227315] [<c01022c0>] (omap_intc_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0xa8)
Aug 21 08:30:12 beaglebone kernel: [ 171.227322] Exception stack(0xc1501ed8 to 0xc1501f20)
Aug 21 08:30:12 beaglebone kernel: [ 171.227331] 1ec0: 00000000 0000916c
Aug 21 08:30:12 beaglebone kernel: [ 171.227343] 1ee0: df8f950c c011e380 ffffe000 c1506e34 c1506e7c 00000001 00000001 c15dd67a
Aug 21 08:30:12 beaglebone kernel: [ 171.227355] 1f00: c10e3054 c1501f34 c1501f38 c1501f28 c010a708 c010a70c 60070013 ffffffff
Aug 21 08:30:12 beaglebone kernel: [ 171.227373] [<c0101a0c>] (__irq_svc) from [<c010a70c>] (arch_cpu_idle+0x48/0x4c)
Aug 21 08:30:12 beaglebone kernel: [ 171.227387] [<c010a70c>] (arch_cpu_idle) from [<c0d3d04c>] (default_idle_call+0x38/0x3c)
Aug 21 08:30:12 beaglebone kernel: [ 171.227400] [<c0d3d04c>] (default_idle_call) from [<c0172b30>] (do_idle+0x11c/0x158)
Aug 21 08:30:12 beaglebone kernel: [ 171.227412] [<c0172b30>] (do_idle) from [<c0172e68>] (cpu_startup_entry+0x28/0x30)
Aug 21 08:30:12 beaglebone kernel: [ 171.227422] [<c0172e68>] (cpu_startup_entry) from [<c0d36468>] (rest_init+0xd4/0xd8)
Aug 21 08:30:12 beaglebone kernel: [ 171.227438] [<c0d36468>] (rest_init) from [<c1400ff8>] (start_kernel+0x484/0x4b4)
Aug 21 08:30:12 beaglebone kernel: [ 171.227498] bad: scheduling from the idle thread!
Aug 21 08:30:12 beaglebone kernel: [ 171.232235] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W O 4.19.94-ti-r42 #1buster
Aug 21 08:30:12 beaglebone kernel: [ 171.232241] Hardware name: Generic AM33XX (Flattened Device Tree)
Aug 21 08:30:12 beaglebone kernel: [ 171.232258] [<c0113e18>] (unwind_backtrace) from [<c010e388>] (show_stack+0x20/0x24)
Aug 21 08:30:12 beaglebone kernel: [ 171.232272] [<c010e388>] (show_stack) from [<c0d20f5c>] (dump_stack+0x8c/0xa0)
Aug 21 08:30:12 beaglebone kernel: [ 171.232284] [<c0d20f5c>] (dump_stack) from [<c01728d4>] (dequeue_task_idle+0x2c/0x38)
Aug 21 08:30:12 beaglebone kernel: [ 171.232298] [<c01728d4>] (dequeue_task_idle) from [<c016ba8c>] (deactivate_task+0xd0/0x134)
Aug 21 08:30:12 beaglebone kernel: [ 171.232311] [<c016ba8c>] (deactivate_task) from [<c0d37764>] (__schedule+0x36c/0xa28)
Aug 21 08:30:12 beaglebone kernel: [ 171.232322] [<c0d37764>] (__schedule) from [<c0d37e74>] (schedule+0x54/0xbc)
Aug 21 08:30:12 beaglebone kernel: [ 171.232333] [<c0d37e74>] (schedule) from [<c0d3c634>] (schedule_hrtimeout_range_clock+0xe4/0x168)
Aug 21 08:30:12 beaglebone kernel: [ 171.232346] [<c0d3c634>] (schedule_hrtimeout_range_clock) from [<c0d3c6e0>] (schedule_hrtimeout_range+0x28/0x30)
Aug 21 08:30:12 beaglebone kernel: [ 171.232357] [<c0d3c6e0>] (schedule_hrtimeout_range) from [<c0d3bd60>] (usleep_range+0x78/0x9c)
Aug 21 08:30:12 beaglebone kernel: [ 171.232371] [<c0d3bd60>] (usleep_range) from [<c098a300>] (mcspi_wait_for_reg_bit+0x60/0x90)
Aug 21 08:30:12 beaglebone kernel: [ 171.232386] [<c098a300>] (mcspi_wait_for_reg_bit) from [<c098bc00>] (omap2_mcspi_transfer_one+0xf40/0x13b4)
Aug 21 08:30:12 beaglebone kernel: [ 171.232399] [<c098bc00>] (omap2_mcspi_transfer_one) from [<c0988078>] (spi_transfer_one_message+0xfc/0x574)
Aug 21 08:30:12 beaglebone kernel: [ 171.232412] [<c0988078>] (spi_transfer_one_message) from [<c0988880>] (__spi_pump_messages+0x390/0x780)
Aug 21 08:30:12 beaglebone kernel: [ 171.232424] [<c0988880>] (__spi_pump_messages) from [<c0988f00>] (__spi_sync+0x26c/0x274)
Aug 21 08:30:12 beaglebone kernel: [ 171.232435] [<c0988f00>] (__spi_sync) from [<c0988f3c>] (spi_sync+0x34/0x4c)
Aug 21 08:30:12 beaglebone kernel: [ 171.232453] [<c0988f3c>] (spi_sync) from [<bf156108>] (devSpiProtocol_cmd_write+0xdc/0xfc [devSpiProtocol])
Aug 21 08:30:12 beaglebone kernel: [ 171.232473] [<bf156108>] (devSpiProtocol_cmd_write [devSpiProtocol]) from [<bf15e168>] (gpio_interrupt+0x78/0xa0 [test_gpio_irq65])
Aug 21 08:30:12 beaglebone kernel: [ 171.232492] [<bf15e168>] (gpio_interrupt [test_gpio_irq65]) from [<c01ae738>] (__handle_irq_event_percpu+0x84/0x2d0)
Aug 21 08:30:12 beaglebone kernel: [ 171.232505] [<c01ae738>] (__handle_irq_event_percpu) from [<c01ae9c0>] (handle_irq_event_percpu+0x3c/0x90)
Aug 21 08:30:12 beaglebone kernel: [ 171.232517] [<c01ae9c0>] (handle_irq_event_percpu) from [<c01aea5c>] (handle_irq_event+0x48/0x6c)
Aug 21 08:30:12 beaglebone kernel: [ 171.232530] [<c01aea5c>] (handle_irq_event) from [<c01b26ac>] (handle_simple_irq+0xb4/0xcc)
Aug 21 08:30:12 beaglebone kernel: [ 171.232541] [<c01b26ac>] (handle_simple_irq) from [<c01ad7c8>] (generic_handle_irq+0x34/0x44)
Aug 21 08:30:12 beaglebone kernel: [ 171.232555] [<c01ad7c8>] (generic_handle_irq) from [<c079a4f8>] (omap_gpio_irq_handler+0x108/0x160)
Aug 21 08:30:12 beaglebone kernel: [ 171.232568] [<c079a4f8>] (omap_gpio_irq_handler) from [<c01ae738>] (__handle_irq_event_percpu+0x84/0x2d0)
Aug 21 08:30:12 beaglebone kernel: [ 171.232580] [<c01ae738>] (__handle_irq_event_percpu) from [<c01ae9c0>] (handle_irq_event_percpu+0x3c/0x90)
Aug 21 08:30:12 beaglebone kernel: [ 171.232593] [<c01ae9c0>] (handle_irq_event_percpu) from [<c01aea5c>] (handle_irq_event+0x48/0x6c)
Aug 21 08:30:12 beaglebone kernel: [ 171.232604] [<c01aea5c>] (handle_irq_event) from [<c01b299c>] (handle_level_irq+0xdc/0x158)
Aug 21 08:30:12 beaglebone kernel: [ 171.232616] [<c01b299c>] (handle_level_irq) from [<c01ad7c8>] (generic_handle_irq+0x34/0x44)
Aug 21 08:30:12 beaglebone kernel: [ 171.232628] [<c01ad7c8>] (generic_handle_irq) from [<c01adec8>] (__handle_domain_irq+0x8c/0xfc)
Aug 21 08:30:12 beaglebone kernel: [ 171.232640] [<c01adec8>] (__handle_domain_irq) from [<c01022c0>] (omap_intc_handle_irq+0x44/0x9c)
Aug 21 08:30:12 beaglebone kernel: [ 171.232651] [<c01022c0>] (omap_intc_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0xa8)
Aug 21 08:30:12 beaglebone kernel: [ 171.232657] Exception stack(0xc1501ed8 to 0xc1501f20)
Aug 21 08:30:12 beaglebone kernel: [ 171.232664] 1ec0: 00000000 0000916c
Aug 21 08:30:12 beaglebone kernel: [ 171.232676] 1ee0: df8f950c c011e380 ffffe000 c1506e34 c1506e7c 00000001 00000001 c15dd67a
Aug 21 08:30:12 beaglebone kernel: [ 171.232688] 1f00: c10e3054 c1501f34 c1501f38 c1501f28 c010a708 c010a70c 60070013 ffffffff
Aug 21 08:30:12 beaglebone kernel: [ 171.232700] [<c0101a0c>] (__irq_svc) from [<c010a70c>] (arch_cpu_idle+0x48/0x4c)
Aug 21 08:30:12 beaglebone kernel: [ 171.232713] [<c010a70c>] (arch_cpu_idle) from [<c0d3d04c>] (default_idle_call+0x38/0x3c)
Aug 21 08:30:12 beaglebone kernel: [ 171.232724] [<c0d3d04c>] (default_idle_call) from [<c0172b30>] (do_idle+0x11c/0x158)
Aug 21 08:30:12 beaglebone kernel: [ 171.232735] [<c0172b30>] (do_idle) from [<c0172e68>] (cpu_startup_entry+0x28/0x30)
Aug 21 08:30:12 beaglebone kernel: [ 171.232745] [<c0172e68>] (cpu_startup_entry) from [<c0d36468>] (rest_init+0xd4/0xd8)
Aug 21 08:30:12 beaglebone kernel: [ 171.232756] [<c0d36468>] (rest_init) from [<c1400ff8>] (start_kernel+0x484/0x4b4)
Aug 21 08:30:12 beaglebone kernel: [ 171.232897] devSpiProtocol_cmd_read: gpioRead
Aug 21 08:30:12 beaglebone kernel: [ 171.232906] ------------[ cut here ]------------
Aug 21 08:30:12 beaglebone kernel: [ 171.232920] WARNING: CPU: 0 PID: 0 at kernel/irq/handle.c:153 __handle_irq_event_percpu+0x2cc/0x2d0
Aug 21 08:30:12 beaglebone kernel: [ 171.232934] irq 84 handler gpio_interrupt+0x0/0xa0 [test_gpio_irq65] enabled interrupts
Aug 21 08:30:12 beaglebone kernel: [ 171.232939] Modules linked in: test_gpio_irq65(O) devSpiProtocol(O) pru_rproc irq_pruss_intc pruss pm33xx wkup_m3_ipc wkup_m3_rproc remoteproc virtio virtio_ring pruss_soc_bus usb_f_acm u_serial usb_f_ecm usb_f_mass_storage uio_pdrv_genirq usb_f_rndis u_ether uio libcomposite spidev
Aug 21 08:30:12 beaglebone kernel: [ 171.232990] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W O 4.19.94-ti-r42 #1buster
Aug 21 08:30:12 beaglebone kernel: [ 171.232995] Hardware name: Generic AM33XX (Flattened Device Tree)
Aug 21 08:30:12 beaglebone kernel: [ 171.233010] [<c0113e18>] (unwind_backtrace) from [<c010e388>] (show_stack+0x20/0x24)
Aug 21 08:30:12 beaglebone kernel: [ 171.233023] [<c010e388>] (show_stack) from [<c0d20f5c>] (dump_stack+0x8c/0xa0)
Aug 21 08:30:12 beaglebone kernel: [ 171.233039] [<c0d20f5c>] (dump_stack) from [<c013c928>] (__warn.part.3+0xcc/0xe8)
Aug 21 08:30:12 beaglebone kernel: [ 171.233051] [<c013c928>] (__warn.part.3) from [<c013c9bc>] (warn_slowpath_fmt+0x78/0x94)
Aug 21 08:30:12 beaglebone kernel: [ 171.233065] [<c013c9bc>] (warn_slowpath_fmt) from [<c01ae980>] (__handle_irq_event_percpu+0x2cc/0x2d0)
Aug 21 08:30:12 beaglebone kernel: [ 171.233078] [<c01ae980>] (__handle_irq_event_percpu) from [<c01ae9c0>] (handle_irq_event_percpu+0x3c/0x90)
Aug 21 08:30:12 beaglebone kernel: [ 171.233090] [<c01ae9c0>] (handle_irq_event_percpu) from [<c01aea5c>] (handle_irq_event+0x48/0x6c)
Aug 21 08:30:12 beaglebone kernel: [ 171.233102] [<c01aea5c>] (handle_irq_event) from [<c01b26ac>] (handle_simple_irq+0xb4/0xcc)
Aug 21 08:30:12 beaglebone kernel: [ 171.233113] [<c01b26ac>] (handle_simple_irq) from [<c01ad7c8>] (generic_handle_irq+0x34/0x44)
Aug 21 08:30:12 beaglebone kernel: [ 171.233126] [<c01ad7c8>] (generic_handle_irq) from [<c079a4f8>] (omap_gpio_irq_handler+0x108/0x160)
Aug 21 08:30:12 beaglebone kernel: [ 171.233139] [<c079a4f8>] (omap_gpio_irq_handler) from [<c01ae738>] (__handle_irq_event_percpu+0x84/0x2d0)
Aug 21 08:30:12 beaglebone kernel: [ 171.233151] [<c01ae738>] (__handle_irq_event_percpu) from [<c01ae9c0>] (handle_irq_event_percpu+0x3c/0x90)
Aug 21 08:30:12 beaglebone kernel: [ 171.233163] [<c01ae9c0>] (handle_irq_event_percpu) from [<c01aea5c>] (handle_irq_event+0x48/0x6c)
Aug 21 08:30:12 beaglebone kernel: [ 171.233175] [<c01aea5c>] (handle_irq_event) from [<c01b299c>] (handle_level_irq+0xdc/0x158)
Aug 21 08:30:12 beaglebone kernel: [ 171.233186] [<c01b299c>] (handle_level_irq) from [<c01ad7c8>] (generic_handle_irq+0x34/0x44)
Aug 21 08:30:12 beaglebone kernel: [ 171.233197] [<c01ad7c8>] (generic_handle_irq) from [<c01adec8>] (__handle_domain_irq+0x8c/0xfc)
Aug 21 08:30:12 beaglebone kernel: [ 171.233210] [<c01adec8>] (__handle_domain_irq) from [<c01022c0>] (omap_intc_handle_irq+0x44/0x9c)
Aug 21 08:30:12 beaglebone kernel: [ 171.233221] [<c01022c0>] (omap_intc_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0xa8)
Aug 21 08:30:12 beaglebone kernel: [ 171.233227] Exception stack(0xc1501ed8 to 0xc1501f20)
Aug 21 08:30:12 beaglebone kernel: [ 171.233234] 1ec0: 00000000 0000916c
Aug 21 08:30:12 beaglebone kernel: [ 171.233245] 1ee0: df8f950c c011e380 ffffe000 c1506e34 c1506e7c 00000001 00000001 c15dd67a
Aug 21 08:30:12 beaglebone kernel: [ 171.233257] 1f00: c10e3054 c1501f34 c1501f38 c1501f28 c010a708 c010a70c 60070013 ffffffff
Aug 21 08:30:12 beaglebone kernel: [ 171.233269] [<c0101a0c>] (__irq_svc) from [<c010a70c>] (arch_cpu_idle+0x48/0x4c)
Aug 21 08:30:12 beaglebone kernel: [ 171.233283] [<c010a70c>] (arch_cpu_idle) from [<c0d3d04c>] (default_idle_call+0x38/0x3c)
Aug 21 08:30:12 beaglebone kernel: [ 171.233295] [<c0d3d04c>] (default_idle_call) from [<c0172b30>] (do_idle+0x11c/0x158)
Aug 21 08:30:12 beaglebone kernel: [ 171.233305] [<c0172b30>] (do_idle) from [<c0172e68>] (cpu_startup_entry+0x28/0x30)
Aug 21 08:30:12 beaglebone kernel: [ 171.233315] [<c0172e68>] (cpu_startup_entry) from [<c0d36468>] (rest_init+0xd4/0xd8)
Aug 21 08:30:12 beaglebone kernel: [ 171.233326] [<c0d36468>] (rest_init) from [<c1400ff8>] (start_kernel+0x484/0x4b4)
Aug 21 08:30:12 beaglebone kernel: [ 171.233335] ---[ end trace b289cf4f3590e1a3 ]---
Aug 21 08:30:12 beaglebone kernel: [ 171.233345] ------------[ cut here ]------------
Aug 21 08:30:12 beaglebone kernel: [ 171.237994] WARNING: CPU: 0 PID: 0 at kernel/sched/core.c:3260 preempt_count_sub+0x9c/0xf0
Aug 21 08:30:12 beaglebone kernel: [ 171.246292] DEBUG_LOCKS_WARN_ON(val > preempt_count())
Aug 21 08:30:12 beaglebone kernel: [ 171.246294] Modules linked in: test_gpio_irq65(O) devSpiProtocol(O) pru_rproc irq_pruss_intc pruss pm33xx wkup_m3_ipc wkup_m3_rproc remoteproc virtio virtio_ring pruss_soc_bus usb_f_acm u_serial usb_f_ecm usb_f_mass_storage uio_pdrv_genirq usb_f_rndis u_ether uio libcomposite spidev
Aug 21 08:30:12 beaglebone kernel: [ 171.276619] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W O 4.19.94-ti-r42 #1buster
Aug 21 08:30:12 beaglebone kernel: [ 171.285179] Hardware name: Generic AM33XX (Flattened Device Tree)
Aug 21 08:30:12 beaglebone kernel: [ 171.291306] [<c0113e18>] (unwind_backtrace) from [<c010e388>] (show_stack+0x20/0x24)
Aug 21 08:30:12 beaglebone kernel: [ 171.299088] [<c010e388>] (show_stack) from [<c0d20f5c>] (dump_stack+0x8c/0xa0)
Aug 21 08:30:12 beaglebone kernel: [ 171.306346] [<c0d20f5c>] (dump_stack) from [<c013c928>] (__warn.part.3+0xcc/0xe8)
Aug 21 08:30:12 beaglebone kernel: [ 171.313865] [<c013c928>] (__warn.part.3) from [<c013c9bc>] (warn_slowpath_fmt+0x78/0x94)
Aug 21 08:30:12 beaglebone kernel: [ 171.321995] [<c013c9bc>] (warn_slowpath_fmt) from [<c0169ad0>] (preempt_count_sub+0x9c/0xf0)
Aug 21 08:30:12 beaglebone kernel: [ 171.330475] [<c0169ad0>] (preempt_count_sub) from [<c0d3d4c8>] (_raw_spin_unlock_irqrestore+0x38/0x64)
Aug 21 08:30:12 beaglebone kernel: [ 171.339829] [<c0d3d4c8>] (_raw_spin_unlock_irqrestore) from [<c079a504>] (omap_gpio_irq_handler+0x114/0x160)
Aug 21 08:30:12 beaglebone kernel: [ 171.349705] [<c079a504>] (omap_gpio_irq_handler) from [<c01ae738>] (__handle_irq_event_percpu+0x84/0x2d0)
Aug 21 08:30:12 beaglebone kernel: [ 171.359319] [<c01ae738>] (__handle_irq_event_percpu) from [<c01ae9c0>] (handle_irq_event_percpu+0x3c/0x90)
Aug 21 08:30:12 beaglebone kernel: [ 171.369021] [<c01ae9c0>] (handle_irq_event_percpu) from [<c01aea5c>] (handle_irq_event+0x48/0x6c)
Aug 21 08:30:12 beaglebone kernel: [ 171.377937] [<c01aea5c>] (handle_irq_event) from [<c01b299c>] (handle_level_irq+0xdc/0x158)
Aug 21 08:30:12 beaglebone kernel: [ 171.386328] [<c01b299c>] (handle_level_irq) from [<c01ad7c8>] (generic_handle_irq+0x34/0x44)
Aug 21 08:30:12 beaglebone kernel: [ 171.394808] [<c01ad7c8>] (generic_handle_irq) from [<c01adec8>] (__handle_domain_irq+0x8c/0xfc)
Aug 21 08:30:12 beaglebone kernel: [ 171.403549] [<c01adec8>] (__handle_domain_irq) from [<c01022c0>] (omap_intc_handle_irq+0x44/0x9c)
Aug 21 08:30:12 beaglebone kernel: [ 171.412464] [<c01022c0>] (omap_intc_handle_irq) from [<c0101a0c>] (__irq_svc+0x6c/0xa8)
Aug 21 08:30:12 beaglebone kernel: [ 171.420501] Exception stack(0xc1501ed8 to 0xc1501f20)
Aug 21 08:30:12 beaglebone kernel: [ 171.425575] 1ec0: 00000000 0000916c
Aug 21 08:30:12 beaglebone kernel: [ 171.433792] 1ee0: df8f950c c011e380 ffffe000 c1506e34 c1506e7c 00000001 00000001 c15dd67a
Aug 21 08:30:12 beaglebone kernel: [ 171.442010] 1f00: c10e3054 c1501f34 c1501f38 c1501f28 c010a708 c010a70c 60070013 ffffffff
Aug 21 08:30:12 beaglebone kernel: [ 171.450228] [<c0101a0c>] (__irq_svc) from [<c010a70c>] (arch_cpu_idle+0x48/0x4c)
Aug 21 08:30:12 beaglebone kernel: [ 171.457662] [<c010a70c>] (arch_cpu_idle) from [<c0d3d04c>] (default_idle_call+0x38/0x3c)
Aug 21 08:30:12 beaglebone kernel: [ 171.465792] [<c0d3d04c>] (default_idle_call) from [<c0172b30>] (do_idle+0x11c/0x158)
Aug 21 08:30:12 beaglebone kernel: [ 171.473571] [<c0172b30>] (do_idle) from [<c0172e68>] (cpu_startup_entry+0x28/0x30)
Aug 21 08:30:12 beaglebone kernel: [ 171.481176] [<c0172e68>] (cpu_startup_entry) from [<c0d36468>] (rest_init+0xd4/0xd8)
Aug 21 08:30:12 beaglebone kernel: [ 171.488957] [<c0d36468>] (rest_init) from [<c1400ff8>] (start_kernel+0x484/0x4b4)
Aug 21 08:30:12 beaglebone kernel: [ 171.496472] ---[ end trace b289cf4f3590e1a4 ]---
SPI设备列表:
ls -1 /dev/spi*
/dev/spidev0.0
/dev/spidev0.1
/dev/spidev1.0
/dev/spidev1.1
/dev/spi:
0.0
0.1
1.0
1.1
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)