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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> отладка из RAM в кейл
SpiritDance
сообщение Aug 7 2006, 08:23
Сообщение #1


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Случилась предышка в работе над проектом. Наконец дошли руки до прикручивания MT-link5 к кейл, со всем разобрался. Пишется флеш, отладчик ходит по шагам, брекпоинты работают - сказка вобщем. Остался только один вопрос как отлаживатся из RAM? Хоть намекните, а?


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 7 2006, 13:34
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Собрать проект для работы из RAM и отлаживаться. Или я что-то не так понял?
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Aug 7 2006, 15:12
Сообщение #3


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата
Собрать проект для работы из RAM и отлаживаться

Я не понял. Как это сделать? С помощью скаттер файла? Если да то киньте пример для работы в ОЗУ.
Второй вопрос достаточно ли отладчику поставить галочку load application at startup чтобы загрузилось именно ОЗУ.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 7 2006, 15:36
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Скаттер для работы из ОЗУ в SAM64:

Код
FLASH 0x00000000 0x00010000
{
    RAM 0x00200000 0x00004000
    {
        * (+RO, +RW, +ZI)
    }
}


Места там только маловато.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Aug 7 2006, 18:10
Сообщение #5


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Я уже устал говорить Вам спасибо smile.gif С меня пиво... ну или что-нибудь полезное. smile.gif

Сообщение отредактировал SpiritDance - Aug 7 2006, 18:10


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Aug 22 2006, 11:17
Сообщение #6


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Все-таки я чего-то не понимаю. Скаттер-файл
Цитата
LR_IROM1 0x00000000 0x00004000
{ ; load region
RW_IRAM1 0x00200000 0x00004000
{ ; RW data
*.o (RESET, +First)
* (+RO +RW +ZI)
}
}

Вижу ругань
Цитата
usarttest.axf: Error: L6202E: __main.o(!!!main) cannot be assigned to non-root region 'RW_IRAM1'
usarttest.axf: Error: L6202E: anon$$obj.o(Region$$Table) cannot be assigned to non-root region 'RW_IRAM1'


Я правильно понимаю что
RO - код
RW - данные
ZI - стек?

Что означает строчка
*.o (RESET, +First)?

Ну и самый главный вопрс что не так? Почему не нравится load-регион с нулевым начальным адресом?Размер пробовал изменять до 0x00204000 результат тот же.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
vet
сообщение Aug 22 2006, 11:30
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



RO - Read-only
RW - Read & Write
ZI - Zero-initialized


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Aug 22 2006, 11:39
Сообщение #8


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



А дальше? smile.gif


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 22 2006, 11:54
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(SpiritDance @ Aug 22 2006, 15:17) *
Все-таки я чего-то не понимаю. Скаттер-файл


Наверное, нужно написать что-то вроде:
Код
LR_IROM1 0x00000000 0x00004000
{ ; load region
    RO_IROM1 0x00000000 0x00004000
    {
        *.o (RESET, +First)
        __main.o (*)
        * (Region$$Table)
        * (ZISection$$Table)
    }
    RW_IRAM1 0x00200000 0x00004000  
    { ; RW data
        * (+RO +RW +ZI)
    }
}


Цитата(SpiritDance @ Aug 22 2006, 15:17) *
Что означает строчка
*.o (RESET, +First)?

Это значит, что секция RESET будет расположена в начале адресного пространства.

Сообщение отредактировал aaarrr - Aug 22 2006, 11:55
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Aug 23 2006, 06:17
Сообщение #10


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Не-а. Не угадали.
Цитата
usarttest.axf: Error: L6202E: __scatter.o(!!!scatter) cannot be assigned to non-root region 'RW_IRAM1'
usarttest.axf: Error: L6202E: __scatter_copy.o(!!handler_copy) cannot be assigned to non-root region 'RW_IRAM1'
usarttest.axf: Error: L6202E: __scatter_zi.o(!!handler_zi) cannot be assigned to non-root region 'RW_IRAM1'

Объясните что значит это шаманство если нетрудно.

Насколько я понял часть кода, включая то что находится в main грузится во флеш, которая в начале адресного пространства до ремапа? если так то почему так криво?


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 23 2006, 15:52
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(SpiritDance @ Aug 23 2006, 10:17) *
Не-а. Не угадали.

Бывает smile.gif

Цитата(SpiritDance @ Aug 23 2006, 10:17) *
Объясните что значит это шаманство если нетрудно.

Это отнюдь не шаманство. Просто нужно указать линкеру, что загрузчик (scatter) нужно оставить во флеш, для ADS было достаточно указать __main.o (*). Попробуйте добавить в RO_IROM1 строку __scatter* (*) - должно помочь, по-идее.

Цитата(SpiritDance @ Aug 23 2006, 10:17) *
Насколько я понял часть кода, включая то что находится в main грузится во флеш, которая в начале адресного пространства до ремапа? если так то почему так криво?

Во-первых, это не тот main, что int main(void), это __main из стартапа.
Во-вторых забудьте слово "remap" применительно к процессору AT91SAM7S64. Не нужен он.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Aug 24 2006, 05:38
Сообщение #12


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Ясно я попробую так упаковать все файлы которые линкер попросит, главное чтобы это не вся программа была. smile.gif попозжее...


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Aug 25 2006, 13:32
Сообщение #13


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Уряяя! Получилось!
Код
LR_IROM1 0x00000000 0x00004000
{; load region
    RO_IROM1 0x00000000 0x00004000
    {
        *.o (RESET, +First)
        __main.o (*)
        __scatter*.o (*)
        * (Region$$Table)
        * (ZISection$$Table)
    }
    RW_IRAM1 0x00200000 0x00004000  
    {; RW data
        * (+RO +RW +ZI)
    }
}


Сообщение отредактировал SpiritDance - Aug 25 2006, 13:33


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 25 2006, 13:56
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Ну вот и славно. Пора и мне на RealView переползать, наверное.
Go to the top of the page
 
+Quote Post
zorromen
сообщение Oct 4 2007, 18:29
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Ну с отладкой в рам, это понятно. (После того что здесь написано). Так вот, неочень ясно, это что хоть я и отлаживаю программу с Рам. Тока всеравно придется писать заголовки в ром. А ром ведь не бесконечный цикл перезаписи имет. Так я невижу особой пользы отладки программы в рам, если всеравно портиться ром. И еще имею Ulink и lpc2148 Keil. Вот ворос, я мож непонял чего, но перед тем sкак начать отладку, требуется программу сперва туда записать, Flash->Download, А потом начинать отладкую. Верно? Просто после АВР, когда заливаласьпрошивка вседа при одкладке, это неного приятно удивтло. А чего я спрашиваю, казалось уже ответив. Просто когда я запускаю отладку с параметрами Download to Flash, то он неможет залить прошивку, пишет
/----------------------/
Ulink ARM Error |X|
/----------------------/
Memory Missmatch!
Adress: 0x00000000
Value =0xFF
Expected = 0x18

Это как понимать? А через Flash->Download шьется.
Go to the top of the page
 
+Quote Post

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

 


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


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