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

svl.soft

Участник
  • Постов

    31
  • Зарегистрирован

  • Посещение

Весь контент svl.soft


  1. LPC vs STM32 cortex-M3

    Контроллеры Kinetis от Freescale пробовали? Рекомендую, STM и NXP курят в стороне. Kinetis и по цене дешевле, характеристики и функционал впечатляет.
  2. Спасибо за помощь и Ваши рекомендации, Уважаемый aaarrr! :)
  3. Спасибо за ответ. Т.е. взять стартап программы Б, создать в нем AREA и прописать импорт имен функций по адресам расположенных в программе А? Вот стартап дефолтный. startup_MK60N512MD100.zip Это как я понимаю, при условии использования RTX.
  4. Keil + Ulink mini

    А через штатный загрузчик LPC2xxx, с помощью вот этого не подойдет?
  5. Здравствуйте коллеги. Есть две программы, А и Б. Программа А представляет собой не только загрузчик, но и содержит различные "полезные" функции; криптография, PRNG, CRC, etc. Загрузчик по какому нибудь комбинаторному состоянию, загружает проект (программа Б) в память и передает ей управление, стандартная операция, тут вопросов нет. Вопрос в следующем, как из программы Б, вызвать эти "полезные" функции программы А? У Кейла примеров и описаний данного изврата не нашел, а может плохо искал... Про сохранение стека, счетчик команд, размещение функции по указанному адресу и т.д. это понятно, но не достаточно. Язык С, компилятор Keil, чип Cortex-M4. Может кто сталкивался с такой задачей? Заранее спасибо.
  6. Freescale Kinetis

    Привет всем, продолжаем тему. :) Кто уже "катался" на TOWER-KIT, к примеру TWR-K60N512-KIT ? Как впечатление от чипов?
  7. Вычисление CRC

    Вот я это и хотел сказать.
  8. Вычисление CRC

    О да! И загоняли бы стек при каждом вызове функции подсчета CRC... Объявление static const uint_least32_t Crc32Table[256] = {... // Размещение массива в памяти программ (flash) Для каждого компилятора, объявления различны.
  9. Вычисление CRC

    #include <stddef.h> #include <stdint.h> /* Name : CRC-32 Poly : 0x04C11DB7 x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1 Init : 0xFFFFFFFF Revert: true XorOut: 0xFFFFFFFF Check : 0xCBF43926 ("123456789") MaxLen: 268 435 455 байт (2 147 483 647 бит) - обнаружение одинарных, двойных, пакетных и всех нечетных ошибок */ const uint_least32_t Crc32Table[256] = { 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D }; uint_least32_t Crc32(const unsigned char * buf, size_t len) { uint_least32_t crc = 0xFFFFFFFF; while (len--) crc = (crc >> 8) ^ Crc32Table[(crc ^ *buf++) & 0xFF]; return crc ^ 0xFFFFFFFF; } И маленький совет. Если буфер данных загнать в подсчет CRC(любой) вместе с принятой контрольной суммой от отправителя, в вашем случае 20 байт, при совпадении СRC на выходе функции получите просто 0, тем самым дополнительно ничего пересчитывать не нужно.
  10. Чип хороший, но в данной теме не подойдет. При его питании Vcc = 5v (нам же нужна на выходе 5v логика), 0,7*Vcc = 3,5v (минимум для единицы) 0,3*Vcc = 1,5v (максимум для нуля)
  11. Вычисление CRC

    Что значит переделывать? Это же обычный Си. Я не совсем Вас понимаю, как в микроконтроллере, с использованием функции, аппаратно посчитать CRC? Ну это уже из темы ALTERA или XILINX.
  12. Под скоростью Вы наверное имели в виду "завал" фронта? Ну так резюк там не причем. Диоды "пифагорят"... Доп. емкость в цепи. Как правильно изложил artur_off, именно на вход. Вы уверенны что микросхема интерфейса CAN, ждет от вас уровня лог.1 в 3 вольта? Наверное не уверенны :) По этому лучше установить подобный чип 74HC4050. И беречь порты нужно, ой как беречь.
  13. Вычисление CRC

    Вот тут все подробно и понятно.
  14. Сделано в первую очередь. Ножка звенит на корпус. Площадка в порядке.
  15. Да конечно, VIGON`ом под ультразвуком как все всегда. Я еще заметил другие фокусы данного чипа, например порт USB в режиме GPIO не работает, хотя в кейловском отладчике наблюдаю правильно настроенные регистры. Возможен и такой вариант, плата многослойная и по этой цепи, два переходных проходят через два слоя питания... Хотя подложку изготавливали с электроконтролем, а наши входную приемку через рентген проводят, хотя могли "проглазеть". А на изгиб, четырехслойку размером 60х40 взять тяжело. :blink:
  16. Здравствуйте. Использую LPC2378 + внешняя RAM с батарейкой + Power manager. Чип ОЗУ, подключен к интерфейсу внешней памяти камня. После сборки устройства на печатной плате, проверил работу ОЗУ, путем записи случайных данных с контрольной суммой, с последующим считыванием и т. д. В общем все отлично и бесподобно. Перекинулся на другие модули проекта, вчера дошел до работы с ОЗУ. Чувствую, что то не так :laughing: Я в отладчик, да, дублирует данные. В общем ножка A11 на земле в камне. Соединения с ОЗУ, пин в пин, длина дорожки не более 40 мм. Было у кого такое, или я свитер неудачно рядом с платой снял?
  17. USB принтер + LPC2478

    Здравствуйте. Стоит задача подключения офисного принтера к USB HOST LPC2478. Если есть у кого нибудь опыт в данной теме, прошу разъяснить хотя бы где "рыть" информацию... Спасибо.
  18. LPC 2378

    От Вас уважаемый zltigo, я другого ответа и не ожидал...
  19. LPC 2378

    Здравствуйте. В даташите LPC2378, сказано к описанию функций портов: 5 V tolerant pad providing digital I/O functions with TTL levels and hysteresis. Но, доверяя, и как говорится, проверяй... :) В прототипе у меня LCD1602 5v, подключён к LPC2378, месяц пока пишу софт, страшного не произошло. Вопрос. Есть у кого нибудь серийные проекты работающие с 5в уровнями, и как себя чувствует при этом LPC2378? Стоит ли ставить резисторы, последовательно по линии порта на 5 вольтовый индикатор, дабы точок чуть прибрать? Или дядя Филипс усё предусмотрел таки?
  20. Вопрос в следующем: Инициализировано три внешних прерывания EINT0,1,2. Проект работает нормально. После инициализации EINT3, его вектор становится одинаков с GPIO interrupts (PORT0, PORT2). Стр. 91 of 684 User manual. External Interrupt 3 (EINT3). Note: EINT3 channel is shared with GPIO interrupts Но ноги этих портов (P0.xx, P2.xx)у меня задействованы (кнопки, светодиоды etc.). Соответственно события на этих портах вызывают обработчик EINT3. Как задействовать EINT3 без GPIO interrupts (PORT0, PORT2)?
  21. External Interrupt 3 (EINT3) LPC2378

    Здравствуйте. Есть ли возможность задействовать External Interrupt 3 (EINT3) в LPC2378 без shared with GPIO interrupts? Т.е. EINT3 функционально одинаковый с EINT0,1,2. Спасибо.
  22. I2C в LPC2378

    Vitaliy_ARM, большое спасибо. Помогло, всё работает.
  23. I2C в LPC2378

    Здравствуйте. В самом деле с этой флешкой работал давно, стыковать с 51 или с AVR, труда не составляло. С LPC 2378 бьюсь два дня, не получается. Запутался в режимах статуса I2STA. Если есть какой нибудь пример, или ссылка, подскажите пожалуйста. Заранее благодарен.
  24. Пишу в Кейле под RTX, питание от литиевой батарее подано, RTC "тикает", есть необходимость использовать RAM 2K, использую способ: #define USER_RAM_BASE_ADDR 0xE0084000 #define NUM_DEVICE (*(volatile unsigned long *)(USER_RAM_BASE + 0x000)) . . . ВОПРОС! Имеется ли библиотечные функции работы с ОЗУ 2к(область памяти внутри микроконтроллера), питающиеся от лития? Или иной пример. Способы вроде: volatile int *i = 0xE0084000; Выдают ошибку компиляции... Следующий способ: typedef struct __ram { BYTE SerialNum; DWORD Value1; DWORD Value2; } UserData; UserData User1; Не сохраняет данные по выкл. питания ессно... ПРИ ЧЁМ ТУТ КЛОКИ?????? Я же не задал вопрос касабельный таймерам, PWM или UART? <<Память она и есть память?>> Если не можете ответить на вопрос, не обязательно перемещать тему! Просьба вернуть назад в форум ARM! Спасибо.
  25. Есть ли пример работы с RAM (адрес 0xE0084000) под Keil? Спасибо.
×
×
  • Создать...