|
Почему-то перестало компилироваться |
|
|
|
 |
Ответов
|
Feb 28 2012, 16:10
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(AHTOXA @ Feb 28 2012, 17:54)  Кто-то потерял в makefile строчку MCU = cortex-m0 ? Только кто этот кто-то? Из makefile: Цитата # program version VER_MAJOR = 0 VER_MINOR = 1
TOOL = arm-none-eabi- # TOOL = arm-kgp-eabi-
# compile options MCU = cortex-m0 OPTIMIZE = -O3 USE_LTO = NO Даже не теряюсь в догадках. Вооще не понимаю.
|
|
|
|
|
Feb 28 2012, 16:29
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
1. А оно вообще компилировалось? 2. Может подхватился другой makefile? 3. Проверьте дальше в makefile наличие строчек Код FLAGS = -mcpu=$(MCU) -mthumb ... AFLAGS = $(FLAGS) ... CFLAGS = $(FLAGS) CFLAGS += $(OPTIMIZE) ... CXXFLAGS = $(FLAGS) CXXFLAGS += $(OPTIMIZE)
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Feb 28 2012, 16:41
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(AHTOXA @ Feb 28 2012, 18:29)  1. А оно вообще компилировалось? Компилировалось и работало. Цитата(AHTOXA @ Feb 28 2012, 18:29)  2. Может подхватился другой makefile? Хз. Как проверить? Цитата(AHTOXA @ Feb 28 2012, 18:29)  3. Проверьте дальше в makefile наличие строчек Есть строчки (makefile - ваш).
|
|
|
|
|
Feb 29 2012, 23:28
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(Сергей Борщ @ Feb 28 2012, 23:47)  Теперь осталось закомментировать строчку .SILENT (если такая есть, если нет - убрать @ в начале команды компиляции), пронаблюдать в консоли полную строку запуска компилятора, если дальше сами не разберетесь - копируйте сюда. Спасибо, помогло. Оказалось компилятор сменился - инсталлировал несколько дней назад одну Ide (тоже на базе eclipse), путь к тулчайну сменился, то есть компилировалось не тем, чем я хотел. Снёс - заработало. Ещё вопрос по порту для M0. В файле sysinit.cpp есть строка Код // 3 FLASH waitstates *(uint32_t *)0x4003C010 = 3; Зто запись в регистр FLASHCFG? Кстати не нашёл упоминания о нём ни в одном h-файле, может его и трогать не надо? По даташиту для 3 waitstates
должно быть так: Код // 3 FLASH waitstates *(uint32_t *)0x4003C010 |= 2; Или нет?
|
|
|
|
|
Mar 1 2012, 07:52
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (_Артём_ @ Mar 1 2012, 01:28)  В файле sysinit.cpp есть строка CODE // 3 FLASH waitstates *(uint32_t *)0x4003C010 = 3; Зто запись в регистр FLASHCFG? Кстати не нашёл упоминания о нём ни в одном h-файле, может его и трогать не надо? Можно и не трогать. "Если вас не интересует результат"  Не зря ведь в даташите для этого регистра для конкретных частот указаны конкретные значения. QUOTE (_Артём_ @ Mar 1 2012, 01:28)  По даташиту для 3 waitstates должно быть так: CODE // 3 FLASH waitstates *(uint32_t *)0x4003C010 |= 2; Или нет? Да, ошибся. Спасибо, что нашли - сейчас сразу и в боевом проекте исправлю. Еще правильнее будет написать CODE *(uint32_t volatile *)0x4003C010 = (*(uint32_t volatile *)0x4003C010 & ~3) | 2;
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 3 2012, 20:31
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(Сергей Борщ @ Mar 1 2012, 09:52)  Можно и не трогать. "Если вас не интересует результат"  Не зря ведь в даташите для этого регистра для конкретных частот указаны конкретные значения. После сброса FLASHCFG находится во вполне определённом состоянии и если значение устраивает можно не писать в него. Цитата(Сергей Борщ @ Mar 1 2012, 09:52)  Еще правильнее будет написать Код *(uint32_t volatile *)0x4003C010 = (*(uint32_t volatile *)0x4003C010 & ~3) | 2; Да, правильней: |=2 - это всё равно что старую ошибку исправить и внёсти новую в тоже место. Спасибо.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|