реклама на сайте
подробности

 
 
> Разметка памяти, WinARM LPC2129
segment
сообщение Jan 27 2009, 12:40
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 352
Регистрация: 10-08-06
Из: Санкт-Петербург
Пользователь №: 19 471



Вообщем шняга какаято. Вопрос возник изза того что LPC2000 flash utility выдает ошибку
Код
lpc21isp version 1.48
File main.hex:
    loaded...
New Extended Linear Address Record [04] out of memory range
Current Memory starts at: 0x00000000, new Address is: 0x40000000

Компиляция проходит успешно, никаких варнингов нету.
Вот кусок кода когда при котором возникает ошибка при прошивке
Код
static uart_config_t config =
{
    .controller = 0,
    .baudrate = 9600,
    .length = 8,
    .stop = 1

};

int main( void )
{
    char buffer[256] = { 0 };

    cpu_init();

    uart_init( &config );

    while(1)
    {
           ...
        }
}

А вот при таком коде ошибки НЕ возникает
Код
int main( void )
{
    uart_config_t config =
    {
        .controller = 0,
        .baudrate = 9600,
        .length = 8,
        .stop = 1

    };

    char buffer[256] = { 0 };

    cpu_init();

    uart_init( &config );

    while(1)
    {
        ...
        }
}

Вообще ничо понять не могу, воощем нид хелп.
ЗЫ
Вложил crt0.s и LPC2129-ROM.ld



Кстати, и не только при этом возникает ошибка, я первый раз заметил это при использовании malloc стандартного, при любом использовании malloc - прошивать отказываеца.. crying.gif
Прикрепленные файлы
Прикрепленный файл  arch.rar ( 2.94 килобайт ) Кол-во скачиваний: 27
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Jan 27 2009, 14:54
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



так у вас копия инициализированных данных вместо флеша лежит в ОЗУ
надо секции .data размещать во флеше
что то типа
Код
    .data :                             /* collect all initialized .data sections that go into RAM */
    {
        _data = .;                      /* create a global symbol marking the start of the .data section */
        *(.data)                        /* all .data sections  */
        _edata = .;                     /* define a global symbol marking the end of the .data section */
    } >RAM AT >ROM                    /* put all the above into RAM (but load the LMA copy into FLASH) */
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.0135 секунд с 7
ELECTRONIX ©2004-2016