我有以下代码(内核代码更具体):
static int is_sram_locked(void)
{
if (OMAP2_DEVICE_TYPE_GP == omap_type()) {
/* RAMFW: R/W access to all initiators for all qualifier sets */
if (cpu_is_omap242x()) {
__raw_writel(0xFF, OMAP24XX_VA_REQINFOPERM0); /* all q-vects */
__raw_writel(0xCFDE, OMAP24XX_VA_READPERM0); /* all i-read */
__raw_writel(0xCFDE, OMAP24XX_VA_WRITEPERM0); /* all i-write */
}
if (cpu_is_omap34xx() && !cpu_is_am33xx()) {
__raw_writel(0xFFFF, OMAP34XX_VA_REQINFOPERM0); /* all q-vects */
__raw_writel(0xFFFF, OMAP34XX_VA_READPERM0); /* all i-read */
__raw_writel(0xFFFF, OMAP34XX_VA_WRITEPERM0); /* all i-write */
__raw_writel(0x0, OMAP34XX_VA_ADDR_MATCH2);
__raw_writel(0xFFFFFFFF, OMAP34XX_VA_SMS_RG_ATT0);
}
return 0;
} else
return 1; /* assume locked with no PPA or security driver */
}
这是从sublime 3复制粘贴的,正如标题所述,我得到以下编译错误:
错误:在程序中迷路'\ 302' 错误:在程序中错误'\ 273'
以__raw_writel( ... )
我已经对这个问题进行了研究,我发现这个错误告诉我,原因上有一个不可打印的字符。
'\ 302 \ 273'是'»'的UTF-8代码(正确的双角度引号)
我读到,当您从其他地方复制粘贴代码时,这个问题经常会出现,而那些不可打印的字符可能会引起您的注意,或者您的键盘有不同的布局来键入奇怪的字符。我非常仔细地检查了代码,但是我找不到任何这些外来字符。
我的一个大问题是,我从未接触过的内核代码怎么会出现这样的错误?并且我有多个文件带有此错误,这使我发现可能存在其他错误。
我已经弄明白我在除了字母之外的其他内容上都会出现此错误,例如:'_'和'。' (这些是迄今为止我遇到问题的例子)
我尝试过的解决方案:
注意:我也使用vim作为编辑器,我的.vimrc将'»'作为TABS,将'·'作为SPACES,但仅用于缩进目的,而不是实际字符。当我从vim复制粘贴时,我修复了一些类似的错误,这些字符实际上是在文本中,我删除了字符并修复了它。但为此,我无法识别代码中存在的任何“迷路”字符。
我没有想法,我可以尝试克服这个问题,所以我会请求你的帮助。
答案 0 :(得分:0)
宏是问题所在。他们提到了我用一些复制粘贴代码修改过的一些宏,并完全忘了它。
特别感谢所有人。