Перейти к содержанию
    

Редактирование Scatter файла KEIL 5

Reset_Handler __attribute__((at(0x12000)))

Только зачем это - одному богу известно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это где поставить?

Если ставлю в коде .. то куча ошибок. типа 

..\src\main.c(104): error:  #77-D: this declaration has no storage class or type specifier
  Reset_Handler __attribute__((at(0x12000)));
..\src\main.c(104): error:  #147: declaration is incompatible with "void Reset_Handler(void)" (declared at line 53 of "..\EFM32LG\Include\system_efm32lg.h")
  Reset_Handler __attribute__((at(0x12000)));
..\src\main.c(266): warning:  #177-D: variable "failString" was declared but never referenced
        static uint8_t failString[]             = "\r\nFail\r\n";
..\src\main.c(267): warning:  #177-D: variable "newLineString" was declared but never referenced
        static uint8_t newLineString[] = "\r\n";
..\src\main.c(424): warning:  #1-D: last line of file ends without a newline

Изменено пользователем ZodiaK

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, ZodiaK said:

Это где поставить?

 

в .с файле

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что то странное творится.. смотри , в кейле просто гонит ошибки если поставить void Reset_Handler() __attribute__((at(0x2000))); ну или  Reset_Handler() __attribute__((at(0x2000)));, компилируется если поставить void Reset_Handler(void) __attribute__((section(".reset_handler")));  и такой скаттер файл :

LR_IROM1 0x00000000 0x40000  {    ; load region size_region
  ER_IROM1 0x00000000 0x40000  {  ; load address = execution address
    *(InRoot$$Sections)
    .ANY (+RO)
  }
  
  RW_IRAM1 0x200000bc 0x8000  {  ; RW data
    .ANY (+RW +ZI)
    *.o (ram_code)
  }
}

LR_RESET_HANDLER 0x0002000 0x00000100 {
  ER_RESET_HANDLER 0x0002000 0x00000100 {
    *(reset_handler)
  }
}    только толку нет, какое либо значение не ставь, код в реале как скопилировал согласно компилятору так и поставил .. т.е код в реале не фиксируется на 0x2000. Такая же история и в SimplicityStudio  ставим void Reset_Handler() __attribute__((at(0x2000)));.. но толку 0 код не ставит на необходимое место во флеши. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...