2015-06-22 5 views
1

У меня есть следующий фрагмент кода (кода ядра, чтобы быть более точным):ошибка: шальная « 302» в программе

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 */ 
} 

Это копия-вставили от возвышенного 3, а в качестве названия государств, Я получаю следующее сообщение об ошибке компиляции:

error: stray '\302' in program
error: stray '\273' in program

на линиях, которые начинаются с __raw_writel(...)

Я проводил исследование о проблеме, и я узнал, что эта ошибка говорит мне, что есть непечатаемый символ в строке.

«\ 302 \ 273» является UTF-8 код «»»(ПРАВАЯ УКАЗЫВАТЬ DOUBLE УГОЛ КАВЫЧКА)

я прочитал, что эта проблема часто появляется при копировании и вставки кода где-то еще и те, непечатаемые символы, возможно, пропустили ваше внимание, или ваша клавиатура имеет другой макет, который вводит странные символы. Я внимательно изучил код и не смог найти ни одного из этих иностранных персонажей.

Мой большой вопрос: как код ядра, который я никогда не касался, может представлять такие ошибки? И у меня есть более одного файла, который приходит с этой ошибкой, что приводит меня к тому, что может быть что-то еще неправильно.

Я понял, что получаю эту ошибку в строках, которые начинаются с чего-либо еще, кроме буквы «_» и «.». (Это примеры, которые поднимаются вопросы, для меня до сих пор)

Solutions Я пробовал:

  • переписывание целые строки;
  • Скопируйте и вставьте код в много UTF-8 нецензурной характер фильтры, так что я могу найти «бродячие» символы
  • Unicode Character Highlighter возвышенных пакеты

Примечание: Я также использую Vim в качестве редактора и мой .vimrc ставит «» как TABS и «·» как SPACES, но только для отступов, а не как фактических символов. Я исправил некоторые подобные ошибки, когда я скопировал с vim, и эти символы были на самом деле в тексте, я удалил символы, и он был исправлен. Но для этого я не могу идентифицировать любые «бродячие» символы, присутствующие в коде.

У меня нет идей, я могу попытаться преодолеть это, поэтому я прошу вас о помощи.

+0

'cat -e program.c' – Eregrith

+0

Я пробовал cat -vet program.c, и никаких странных символов не было, кроме^I, что означает tab и $, который указывает конец строки. –

+0

С чем вы скомпилируете свою программу? – Eregrith

ответ

0

Макросы были проблемой. Они ссылались на некоторые макросы, которые я модифицировал с помощью кода копирования и вставки, и полностью забыл об этом.

Особая благодарность всем.

Смежные вопросы