【发布时间】:2017-02-08 14:00:43
【问题描述】:
我正在学习基于 The Linux Kernel Module Programming Guide 在 Raspbian Jessie 上创建内核模块
目前我在hello-5.c 部分。我尝试添加static u8 myByte = 'X';,但无法识别u8。然后我将u8 更改为uint8_t,这与AFAIK 相同,uint8_t 被识别为数据类型。
教程的旧版本here 声明为static u8 myByte = 'X';,所以我想在新的教程中重复使用它。
较早的教程包括这些:
#define MODULE
#define LINUX
#define __KERNEL__
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
虽然较新的教程包括这些;
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/stat.h>
我尝试过使用旧的,但是define 部分会产生错误,所以我使用了较新的教程。
那么,为什么在新版本中uint8_t 可以识别而u8 不能识别?
【问题讨论】:
-
我担心这个问题超出了这个特定站点的范围,但在 Stackoverflow 或 Unix.stackexchange 上可能会做得更好。
-
哦,这实际上回答了我的问题。谢谢你。 :)
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须在问题本身中包含所需的行为、特定问题或错误以及重现它所需的最短代码 。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建最小、完整和可验证的示例。
-
@WidiWidiyanto 请参阅 this、this 并阅读 LDD3 的 chapter 11。你会在那里找到答案。
-
@Olaf 我想我已经解释得很清楚了。我想试试
static u8 myByte = 'X';,但它只有在我使用static uint8_t myByte = 'X'时才能识别
标签: linux linux-kernel c raspbian kernel-module