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

 
 
51 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем
gte
сообщение Apr 19 2008, 09:44
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Поставил amontec-sdk4arm, нашел демо проект lpc2378_demo1, уровень оптимизации поставил на 0. Компиляция без ошибок. Запустил sdk4arm-insight в режиме симуляции. Симуляция зависла на
124 while ( ((PLLSTAT & (1 << 26)) == 0) ); /* Check lock bit status */

Стал смотреть более внимательно и обнаружил непонятное для меня.
Посмотрите, пожалуйста, на строки 0x71e, 0x720, 0x722 - это нормально?

Код
    111        PLLCFG = PLL_MValue | (PLL_NValue << 16);
-    0x70a    <ConfigurePLL+66>:        movs    r2, #11
-    0x70c    <ConfigurePLL+68>:        subs    r3, #136
-    0x70e    <ConfigurePLL+70>:        str    r2, [r3, #0]
    112        PLLFEED = 0xaa;
-    0x710    <ConfigurePLL+72>:        ldr    r2, [pc, #92]    (0x770 <ConfigurePLL+168>)
-    0x712    <ConfigurePLL+74>:        movs    r0, #170
-    0x718    <ConfigurePLL+80>:        str    r0, [r2, #0]
    113        PLLFEED = 0x55;
-    0x714    <ConfigurePLL+76>:        movs    r1, #85
-    0x71a    <ConfigurePLL+82>:        str    r1, [r2, #0]
    114          
    115        PLLCON = 1;                /* Enable PLL, disconnected */
-    0x716    <ConfigurePLL+78>:        subs    r3, #4
-    0x71c    <ConfigurePLL+84>:        str    r4, [r3, #0]
    116        PLLFEED = 0xaa;
-    0x71e    <ConfigurePLL+86>:        str    r0, [r2, #0]
    117        PLLFEED = 0x55;
-    0x722    <ConfigurePLL+90>:        str    r1, [r2, #0]
    118    
    119        CCLKCFG = CCLKDivValue;    /* Set clock divider */
-    0x720    <ConfigurePLL+88>:        adds    r3, #132
-    0x724    <ConfigurePLL+92>:        movs    r2, #4
-    0x726    <ConfigurePLL+94>:        str    r2, [r3, #0]
    120    #if USE_USB
    121        USBCLKCFG = USBCLKDivValue;        /* usbclk = 288 MHz/6 = 48 MHz */
-    0x728    <ConfigurePLL+96>:        movs    r2, #5
-    0x72a    <ConfigurePLL+98>:        adds    r3, #4
-    0x72c    <ConfigurePLL+100>:        str    r2, [r3, #0]
    122    #endif
    123    
    124        while ( ((PLLSTAT & (1 << 26)) == 0) );    /* Check lock bit status */
-    0x72e    <ConfigurePLL+102>:        ldr    r2, [pc, #56]    (0x768 <ConfigurePLL+160>)
-    0x730    <ConfigurePLL+104>:        ldr    r3, [r2, #0]
-    0x732    <ConfigurePLL+106>:        lsls    r1, r3, #5
-    0x734    <ConfigurePLL+108>:        bpl.n    0x72e <ConfigurePLL+102>
Go to the top of the page
 
+Quote Post
amw
сообщение Apr 19 2008, 10:25
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Почитал, решил присоединится в eclipse-водам smile.gif
Возникли вопросы:
1. В проект добавляются файлы только автоматически? То есть все, что в каталоге проекта автоматически становиться его частью? А можно ли сделать так, что автоматом файлы и каталоги не добавлялись, а я добавлял их вручную?
2. Имеются проекты разделенные на каталоги. Например include - только *.h файлы, src - только *.c файлы, linker - только скрипты линкера и т.д. Прикомпиляции eclipse создает подкаталог Debug и компилирует оттуда. Указание ключа (как я раньше делал) -Iinclude приводит к тому, что gcc ищет каталог Debug/include а не include. Пока исправил ключ на -I../include, но это не нормально, по моему. Как объяснить eclipse, чтобы он брал не только src но и другие (выбранные мной) каталоги в Debug?
3. Работаю в Linux и потому *.s и *.S - это разные типы файлов. Нашел окно, где задаются типы файлов, добавил *.S - Assembler source file. Применил, нажал ОК. Открываю снова окно настроек типов файлов - моего определения нет! Куда оно делось и как его сохранить?


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 19 2008, 11:04
Сообщение #18


Гуру
******

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



Цитата(gte @ Apr 19 2008, 12:44) *
Симуляция зависла на
124 while ( ((PLLSTAT & (1 << 26)) == 0) ); /* Check lock bit status */
Логично. 26 бит в PLLSTAT выставляется аппаратно, о чем симулятор, скорее всего, не знает. Чтобы проскочить это место нужно либо вручную взвести в окне памяти нужный бит в нужной ячейке, либо временно добавить в предыдущий код строчку, взводящую этот бит.
Цитата(gte @ Apr 19 2008, 12:44) *
Стал смотреть более внимательно и обнаружил непонятное для меня.
Посмотрите, пожалуйста, на строки 0x71e, 0x720, 0x722 - это нормально?
Вас смущает, что строки идут не по порядку адресов? Да, я это упоминал в четвертом вопросе первого поста. А в самом коде криминала не видно, кроме записи слова в байтовый PLLFEED. Не знаю, как отреаирует на это живой кристалл. Скорее всего нормально, там регистры идут с шагом 4 байта.
Отступление: Аналог Девайс вот умудрились в своих ADuC70xx сделать трехбайтовый регистр FEESIGN. Какой командой они планировали в него писать?

Цитата(amw @ Apr 19 2008, 13:25) *
1. В проект добавляются файлы только автоматически? То есть все, что в каталоге проекта автоматически становиться его частью? А можно ли сделать так, что автоматом файлы и каталоги не добавлялись, а я добавлял их вручную?
Скорее это файлы, которые он показывает в дереве проекта. А что будет компилиться - зависит от makefile. Во всяком случае так происходит, если при создании проекта выбрать makefile project.
Цитата(amw @ Apr 19 2008, 13:25) *
При компиляции eclipse создает подкаталог Debug и компилирует оттуда.
У меня он ищет makefile в каталоге проекта, т.е. в том, где лежат .cproject и .project. А уже все подкаталоги создает makefile относительно своего расположения.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
amw
сообщение Apr 19 2008, 11:15
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(Сергей Борщ @ Apr 19 2008, 14:04) *
Скорее это файлы, которые он показывает в дереве проекта. А что будет компилиться - зависит от makefile. Во всяком случае так происходит, если при создании проекта выбрать makefile project.
У меня он ищет makefile в каталоге проекта, т.е. в том, где лежат .cproject и .project. А уже все подкаталоги создает makefile относительно своего расположения.

Ну я для начала выбрал проект "Managed Make C Project", то есть Makefile создается и изменяется автоматически (я правильно понял?). Советуете использовать Standard Make C Project?


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
gte
сообщение Apr 19 2008, 12:37
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Цитата(Сергей Борщ @ Apr 19 2008, 15:04) *
Логично. 26 бит в PLLSTAT выставляется аппаратно, о чем симулятор, скорее всего, не знает. Чтобы

Да, но строки
Код
    SCS |= 0x20;            /* Enable main OSC */
while( !(SCS & 0x40) );    /* Wait until main OSC is usable */

он проходит. Правда только в том, случае, если выждать заметное время, затем остановить пошаговое выполнение, а потом продолжить. В этом случае команда выполняется.

И попутно.
Можно в нем как-то смотреть содержание отдельных ячеек памяти? Хочется состояние регистров смотреть.
Цитата
А в самом коде криминала не видно, кроме записи слова в байтовый PLLFEED.

Именно это и смущает. А если переставить предыдущие команды, то уже совсем не безобидно. Правда, код все же оптимизирован, может в этом дело.
Go to the top of the page
 
+Quote Post
gte
сообщение Apr 23 2008, 21:44
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Дошел до реальной платы. Пока не приехал MT-Link пытаю wiggler.
Стоит Yagarto (openocd-r520, а не 592). Настроил по примеру две конфигурации openocd для загрузки и отладки из флэш. Запустил оба, затем настроенный embedded debug (native). Процесс замерз на 27% с сообщением

launching dos_2368
launching: GDB commands: continue

В чем может быть причина? Может wiggler? У меня NSRST на 15 ноге инверсный, а NTRST на 3 ноге нет. В зависшем положении NSRST =1, а на NTRST импульсы.

Тесты сообщений выдаваемые при запуске и файлы *.cfg приложил.
Да, в *.cfg из lpc2378_demo1_20070629 от Martin Thomas ошибка в строке
flash bank lpc2000 0x0 0x80000 0 0 lpc2000_v2 0 12000 calc_checksum - должно быть 0x80000 0 0 0 lpc2000_v2.
Прикрепленные файлы
Прикрепленный файл  __________________cfg.zip ( 4.05 килобайт ) Кол-во скачиваний: 91
 
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 24 2008, 05:19
Сообщение #22


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(amw @ Apr 19 2008, 14:15) *
Ну я для начала выбрал проект "Managed Make C Project", то есть Makefile создается и изменяется автоматически (я правильно понял?). Советуете использовать Standard Make C Project?

Для начала в свойствах компилятора нужно указать все папки проекта.
А потом отдельные файлы можно выключить (правая мышь->Exclude from build).
Значки "с" и "h" на отключенных файлах становятся не сплошными, а контурными


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
amw
сообщение Apr 24 2008, 07:47
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(MrYuran @ Apr 24 2008, 08:19) *
Для начала в свойствах компилятора нужно указать все папки проекта.
А потом отдельные файлы можно выключить (правая мышь->Exclude from build).
Значки "с" и "h" на отключенных файлах становятся не сплошными, а контурными

Хм. Обратная логика smile.gif.
Спасибо.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 24 2008, 08:32
Сообщение #24


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(amw @ Apr 24 2008, 10:47) *
Спасибо.

Да не за что.
Я вот уже склоняюсь к мысле, что надо ручками мэйк писать.
Синтаксис немного необычный (для меня)
ЗАТО:
1. Не надо в начале каждого проекта колупать туеву хучу всяких мелких настроечек (и всё равно что-нето забудешь)
2. Автомэйк не всегда делает так, как хочется, особенно в сложных проектах


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 24 2008, 09:14
Сообщение #25


фанат дивана
******

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



Цитата(MrYuran @ Apr 24 2008, 14:32) *
Я вот уже склоняюсь к мысле, что надо ручками мэйк писать.


Воистину так:-)

Цитата(MrYuran @ Apr 24 2008, 14:32) *
Настоящие программеры делают так


smile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 24 2008, 09:27
Сообщение #26


Гуру
******

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



Цитата(MrYuran @ Apr 24 2008, 11:32) *
ЗАТО:

3. Проект легко отделяется от Эклипсы и может существовать отдельно.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Apr 24 2008, 10:54
Сообщение #27


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(Сергей Борщ @ Apr 24 2008, 13:27) *
3. Проект легко отделяется от Эклипсы и может существовать отдельно.

+1
Удобно и независимо от оболочки. Для Winavr только так и использую. Makefile редактирую как мне надо с добавлением необходимого.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
klen
сообщение Apr 29 2008, 06:14
Сообщение #28


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



все было шеколадно пока не обновился ....

работаю для АRМ

после обновления имею
Eclipse 3.3.2 Build id: M20080221-1800
ZylinCDT версии 4.1.16
CDT 4.0.3.200802251018
gdb6.8

косяк в том что теперь CDT упорно создает в корне воркспейса папку zylin-cdt-debugging и почему то при отладке ищет именно там собранный бинарник. 07.gif с какого перепоя????

скрипт для осd в части касающейся :
Код
target remote localhost:3333
monitor poll
monitor arm7_9 dcc_downloads enable
monitor flash probe 0
monitor flash erase_sector 0 0 26
monitor flash write_bank 0 out/image.bin 0x0
monitor reset run
monitor soft_reset_halt
monitor arm7_9 force_hw_bkpts enable
symbol-file out/image.elf
thbreak main
continue


так вот СDT почемуто ????? выполняет команду скрипта
monitor flash write_bank 0 out/image.bin 0x0 из текущей директории workspase/PROJECT_NAME/out/
а команду
symbol-file out/image.elf из текущей директории workspase/zylin-cdt-debugging/out/image.elf

в результате чего OCD чесно заливает бинарник во флешь а GDB чесно пытается найти ELF там где ему сказал CDT(т.е там где его ессесно нет)

короче так.. кто еще не налетель на
эту "фичу" не обновляйте ZylinCDT
Очень возможно это просто несовместимость форматов файлов проекта от версии к версии - ну типа они там чето дорасширили в формате.
Go to the top of the page
 
+Quote Post
LessNik
сообщение May 6 2008, 12:56
Сообщение #29


Частый гость
**

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



Импортировал некоторые лишние файлы в проект.
А как можно убрать файл из Project Explorerа, так чтобы он не удалялся с винта физически?
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение May 7 2008, 04:04
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(LessNik @ May 6 2008, 16:56) *
Импортировал некоторые лишние файлы в проект.
А как можно убрать файл из Project Explorerа, так чтобы он не удалялся с винта физически?

Насколько я понимаю, он показывает содержимое всех вложенных папок проекта. Если вы добавляли файл руками (создав ссылку) - ее можно удалить. Если файл лежит в подпапке проекта - можно только настроить фильтры так, чтобы он не отображался в окне explorer-а.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th April 2024 - 07:50
Рейтинг@Mail.ru


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