Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-авг-19 08:46

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 263 ]  На страницу Пред.  1 ... 13, 14, 15, 16, 17, 18  След.
Автор Сообщение
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2015-дек-16 15:41 
Не в сети

Зарегистрирован: 2014-мар-04 08:52
Сообщения: 53
Откуда: г. Зеленоград ЗАО "НТЦ ЭЛИНС"
А, ну посмотрел файлик startup_MDR1986VE1T.S - всё ок. да, _start меняете на main...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2015-дек-16 18:54 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Откуда: Казань
noob писал(а):
sguwenka писал(а):
Скорее всего не правильно. Вы откуда стартап взяли? Какой IDE используете для сборки?
_start наверное должен указывать на функцию, которая бы включала в себя: инициализацию data, bss, SystemInit (клоки) или ей подобное, и только потом вызов main.


Стартап я взял отсюда: https://github.com/eldarkg/emdr1986x-std-per-lib. Скачал папку CMSIS.
Добавил к себе в проект. Удалил оттуда папки, не относящиеся к MDR1986VE1T. Получилась следующая структура каталогов:
Код:
CMSIS (директория)
-CM1 (директория)
--CoreSupport (директория)
---core_cm1.h
---core_cmFunc.h
---core_cmInstr.h
--DeviceSupport (директория)
---MDR1986VE1T (директория)
----inc (директория)
-----MDR1986VE1T.h
----startup (директория)
-----gcc (директория)
------MDR1986VE1T.ld
------startup_MDR1986VE1T.S
-----system_MDR1986VE1T.c
-----system_MDR1986VE1T.h

Читай для справки https://github.com/eldarkg/emdr1986x-st ... /README.md
Не забудь еще -DUSE_MDR1986VE1T -D__STARTUP_CLEAR_BSS (последнее для обнуления неинициализированных глоб. переменных).
П.С. если не указан -D__START используется код инициализации библиотеки С, которая уже вызывает мейн.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2015-дек-17 11:20 
Не в сети

Зарегистрирован: 2014-май-20 09:07
Сообщения: 82
Откуда: ЗАО "Московский Прожекторный завод"
8daemon писал(а):
Читай для справки https://github.com/eldarkg/emdr1986x-st ... /README.md
Не забудь еще -DUSE_MDR1986VE1T -D__STARTUP_CLEAR_BSS (последнее для обнуления неинициализированных глоб. переменных).
П.С. если не указан -D__START используется код инициализации библиотеки С, которая уже вызывает мейн.


Спасибо за ответ!
Немного не понятно с "кодом инициализации библиотеки C". В таком случае, почему мне пришлось прописывать main вручную? В принципе, моего кругозора пока недостаточно, чтобы понять, что такое библиотека Си, и где в ней код инициализации :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2015-дек-17 20:06 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Откуда: Казань
noob писал(а):
8daemon писал(а):
Читай для справки https://github.com/eldarkg/emdr1986x-st ... /README.md
Не забудь еще -DUSE_MDR1986VE1T -D__STARTUP_CLEAR_BSS (последнее для обнуления неинициализированных глоб. переменных).
П.С. если не указан -D__START используется код инициализации библиотеки С, которая уже вызывает мейн.


Спасибо за ответ!
Немного не понятно с "кодом инициализации библиотеки C". В таком случае, почему мне пришлось прописывать main вручную? В принципе, моего кругозора пока недостаточно, чтобы понять, что такое библиотека Си, и где в ней код инициализации :(

[url]https://ru.wikipedia.org/wiki/Стандартная_библиотека_языка_Си[/url] тема "Общая поддержка библиотек".
Вручную потому что ты не используешь CRT (см. по ссылке выше), которая помимо всего прочего создает секцию не инициализированных(обнуляет их) для это ты указываешь -D__STARTUP_CLEAR_BSS (чтобы чистить самому, т.к. не используешь CRT, который сделал бы это сам). А _start это функция из CRT, т.к. ты CRT не используешь, указываешь свою main (можешь назвать как угодно, но желательно для соблюдения стандарта С назвать ее main).
Указывая линкеру флаг -nostartfiles ты говоришь не использовать стандартный CRT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2015-дек-29 13:39 
Не в сети

Зарегистрирован: 2014-авг-11 19:26
Сообщения: 111
Добрый день!
Дошли руки до ВЕ1Т, пробую разобраться с примером CMSIS_WebServerOnSD_Card.zip [5.64 МБ] от R Max, выложенным выше.
Поставил Keil 5.17, указанные паки, открываю проект - ошибок нет, всё находит. Пытаюсь скомпилировать и получаю 2 ошибки:
Код:
C:\Data\Keil\ARM\PACK\Keil\MDR1986BExx\1.4\CMSIS_Driver\MDR1986VE1T\MDR1986VE1T_ETH_PHY.c(33): error:  #20: identifier "RTE_ETH_PHY0_BRG" is undefined
        (RTE_ETH_PHY0_BRG << RST_CLK_ETH_CLOCK_PHY_BRG_Pos) |
C:\Data\Keil\ARM\PACK\Keil\MDR1986BExx\1.4\CMSIS_Driver\MDR1986VE1T\MDR1986VE1T_ETH_PHY.c(34): error:  #20: identifier "RTE_ETH_PHY0_CLK_SEL" is undefined
        (RTE_ETH_PHY0_CLK_SEL << RST_CLK_ETH_CLOCK_PHY_CLK_SEL_Pos);
C:\Data\Keil\ARM\PACK\Keil\MDR1986BExx\1.4\CMSIS_Driver\MDR1986VE1T\MDR1986VE1T_ETH_PHY.c: 0 warnings, 2 errors


такое чувство что нет каких то настроек в файле RTE_Device.h или RTE_Components.h.... но я ничего не трогал и только запустил компиляцию выложенного проекта.. я что то сделал не так?

_________________
https://adelectronics.ru
Заходи, не стесняйся! ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2015-дек-29 19:15 
Не в сети
Аватара пользователя

Зарегистрирован: 2011-авг-21 18:55
Сообщения: 223
A_D Попробуйте вот этот проект.

Цитата:
Пак с которым я собирал тот проект, внутри того же архива в папке Pack.
Следующим сообщением я выложил другой пак, в котором внёс правки в RTE_Device.h и в сами драйверы.


Чтобы скомпилировать с новым паком, надо удалять из проекта папку RTE, соответственно при переоткрытии проекта, Keil подкинет дефолтные файлы из пака в директорию проекта, но это, естественно чревато сносом всех настроек изначального проекта (но по идее можно просто сравнить файлы и сделать необходимые настройки)...

Быстрый вариант, чтобы удалить сам пак из Keil-а - в Проводнике удалить полностью папку C:\Keil_v5\ARM\Pack\Keil\MDR1986BExx...

P.S. Да и не забудьте на SD-карту закинуть файлы из папки проекта Source/Web.


Вложения:
Eth.zip [2.97 МБ]
Скачиваний: 222

_________________
Hack the Planet!


Последний раз редактировалось R Max 2015-дек-29 19:30, всего редактировалось 7 раз(а).
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2015-дек-29 19:20 
Не в сети

Зарегистрирован: 2014-авг-11 19:26
Сообщения: 111
R Max А этот без проблем скомпилировался (9 варнингов, но они и в том были), Спасибо большое!! В последнем проекте RTE_Device.h другой - по изернету добавилась строка и CAN убраны настройки - в этом и было дело. :) Буду разбираться, Спасибо еще раз!

_________________
https://adelectronics.ru
Заходи, не стесняйся! ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2016-мар-11 09:23 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 968
Откуда: Тула
1986ВЕ1 СП 2.14.0 стр. 96:
Цитата:
13.7.4 CPU_CLOCK

7…4 CPU C3 SEL[3:0]
Биты выбора делителя для CPU_C3
0xxx – CPU_C3 = CPU_C2;
1000 – CPU_C3 = CPU_C2 / 2;
1001 – CPU_C3 = CPU_C2 / 4;
1010 – CPU_C3 = CPU_C2 / 8;

1111 – CPU_C3 = CPU_C2 / 256;


system_MDR1986VE1T.c , system_MDR1986VE3.c , system_MDR1986BE4.c (для кейл)
Код:
    case 1 :
      /* CPU_C3 */
      /* Determine CPU_C3 frequency */
      cpu_c3_freq = cpu_c2_freq / ((MDR_RST_CLK->CPU_CLOCK >> 4 & (uint32_t)0x0F) + 1);

Я так понимаю, что частота определится очень не корректно.
Предполагаю что правильнее (алгоритмически) будет так:
Код:
  tmp = MDR_RST_CLK->CPU_CLOCK >> 4;
  if(tmp & (uint32_t)(0x08)) { // если бит 7 установлен в 1
      //                                              вычисляется степень двойки и делится на 2^n
      systemClocks->cpu_c3 = systemClocks->cpu_c2 / ((uint32_t)1 << (1+(tmp & 0x7)));
  } else {
      systemClocks->cpu_c3 = systemClocks->cpu_c2;
  }
  systemClocks->valid.cpu_c3 = systemClocks->valid.cpu_c2;


Если это верно, то точно такая же история и с 1986ВЕ91 (СП 3.7.1), и, видимо, с остальными камнями то же.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2016-мар-12 19:33 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Откуда: Казань
prostoRoman писал(а):
1986ВЕ1 СП 2.14.0 стр. 96:
Цитата:
13.7.4 CPU_CLOCK

7…4 CPU C3 SEL[3:0]
Биты выбора делителя для CPU_C3
0xxx – CPU_C3 = CPU_C2;
1000 – CPU_C3 = CPU_C2 / 2;
1001 – CPU_C3 = CPU_C2 / 4;
1010 – CPU_C3 = CPU_C2 / 8;

1111 – CPU_C3 = CPU_C2 / 256;


system_MDR1986VE1T.c , system_MDR1986VE3.c , system_MDR1986BE4.c (для кейл)
Код:
    case 1 :
      /* CPU_C3 */
      /* Determine CPU_C3 frequency */
      cpu_c3_freq = cpu_c2_freq / ((MDR_RST_CLK->CPU_CLOCK >> 4 & (uint32_t)0x0F) + 1);

Я так понимаю, что частота определится очень не корректно.
Предполагаю что правильнее (алгоритмически) будет так:
Код:
  tmp = MDR_RST_CLK->CPU_CLOCK >> 4;
  if(tmp & (uint32_t)(0x08)) { // если бит 7 установлен в 1
      //                                              вычисляется степень двойки и делится на 2^n
      systemClocks->cpu_c3 = systemClocks->cpu_c2 / ((uint32_t)1 << (1+(tmp & 0x7)));
  } else {
      systemClocks->cpu_c3 = systemClocks->cpu_c2;
  }
  systemClocks->valid.cpu_c3 = systemClocks->valid.cpu_c2;


Если это верно, то точно такая же история и с 1986ВЕ91 (СП 3.7.1), и, видимо, с остальными камнями то же.

Исправлено тут https://github.com/eldarkg/emdr1986x-std-per-lib/commit/162295c02d155d43f2e0d31fb7078a91ed235d02


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2016-мар-21 21:11 
Не в сети
Аватара пользователя

Зарегистрирован: 2011-авг-21 18:55
Сообщения: 223
Просьба к разработчикам .pack от Миландр, добавьте в файлы SVD-SFR описание регистров MDR_EBC->CONTROL и MDR_EBC->REGx_CNTRL для 1986ВЕ94Т.

_________________
Hack the Planet!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2016-июн-03 17:54 
Не в сети
Аватара пользователя

Зарегистрирован: 2015-ноя-11 13:42
Сообщения: 11
Господа, стандартная библиотека периферии есть вот здесь https://github.com/eldarkg/emdr1986x-std-per-lib-doc. Это хорошо. Но!!

Где найти документацию на стандратную библиотеку периферии?

Не комментарии в исходном коде к примерам, а именно документацию в pdf-формате или любом другом формате...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2016-июн-03 18:44 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Откуда: Казань
Huckleberry Finn писал(а):
Господа, стандартная библиотека периферии есть вот здесь https://github.com/eldarkg/emdr1986x-std-per-lib-doc. Это хорошо. Но!!

Где найти документацию на стандратную библиотеку периферии?

Не комментарии в исходном коде к примерам, а именно документацию в pdf-формате или любом другом формате...

Попробуй клонировать этот репозиторий https://github.com/eldarkg/emdr1986x-std-per-lib.
Затем используй Doxygen. На выходе должна получиться документация


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2016-июн-03 21:05 
Не в сети
Аватара пользователя

Зарегистрирован: 2015-ноя-11 13:42
Сообщения: 11
8daemon писал(а):
Попробуй клонировать этот репозиторий https://github.com/eldarkg/emdr1986x-std-per-lib.
Затем используй Doxygen. На выходе должна получиться документация


Да, это всё круто, я понимаю, что вроде как стандартная библиотека периферии закомментирована в стиле Doxуgen... Странно что нигде не прописано КАК извлечь эту документацию. А для новичков могли бы и pdf-ку выложить.

Что я сделал для получения документации:
1) В корне каталога стандартной библиотеки периферии прошу doxygen сгенерировать шаблонный Doxyfile командой:
doxygen -g
2) Запускаю doxywizard (настройка Doxyfile в графич. интерфейс. польз.) из командной строки и прошу генерировать документацию по всем файлам. То есть пройти все файлы рекурсивно. Для этого выполняю команду:
doxywizard Doxyfile
2) Выполняю генерацию документации командой
doxygen Doxyfile

На выходе получаю html-документ.
Вроде как и документация, но вроде как её и нет. То есть просто графы зависимостей, описание функций... А хотелось бы типовые примеры настройки какого-нибудь UART и т. п. Ну ладно. Понятно. Легче в исходных файлах примеров смотреть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2016-июн-05 14:28 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 968
Откуда: Тула
Huckleberry Finn писал(а):
А хотелось бы типовые примеры настройки какого-нибудь UART и т. п.

Вместе с библиотекой поставляются и примеры её использования как по отдельным блокам периферии, так и большие примеры для отладочных плат. http://milandr.ru/index.php?page=programmnoe-obespech

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Standard Peripherals Library MDR32F9x, VE1, VE3, VE4, VC
СообщениеДобавлено: 2016-июн-05 16:53 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Откуда: Казань
Я разделил библиотеку периферии от примеров и дополнительных файлов IDE с целью уменьшение размера библиотеки:
https://github.com/eldarkg/emdr1986x-std-per-lib
https://github.com/eldarkg/emdr1986x-std-per-lib-doc


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 263 ]  На страницу Пред.  1 ... 13, 14, 15, 16, 17, 18  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB