Jump to content

    

LessNik

Свой
  • Content Count

    106
  • Joined

  • Last visited

Community Reputation

0 Обычный

About LessNik

  • Rank
    Частый гость

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

1428 profile views
  1. Компания объявляет об открытии двух вакансий: - Инженер-программист ПЛИС и микроконтроллеров - Инженер-программист Embedded Linux и Qt Резюме просьба высылать через https://hh.ru/employer/38891, раздел "Информационные технологии, интернет, телеком".
  2. АББ в России - крупная международная компания, лидер в области продуктов и технологий для электроэнергетики и автоматизации - объявляет об открытии двух вакансий: - Инженер-программист ПЛИС и микроконтроллеров https://hh.ru/vacancy/29343857 - Инженер-программист Embedded Linux и Qt https://hh.ru/vacancy/29441566 Резюме просьба высылать через hh.ru.
  3. АББ в России - крупная международная компания, лидер в области продуктов и технологий для электроэнергетики и автоматизации - объявляет об открытии вакансии Embedded Programmer (Разработчик встроенного ПО) Обязанности: Разработка системного ПО для программно-аппаратных комплексов, разрабатываемых в компании. Требования: - Опыт программирования на языках С/C++. - Опыт программирования на языке ассемблера (желательно для МК 8051). - Опыт работы с системой контроля версий. - Опыт работы с микроконтроллерами архитектуры 8051, ARM7, Cortex-M(0/3). - Знание IAR. - Опыт работы с интерфейсами SPI, IIC, UART, RS232/485. - Знание средств отладки. - Английский язык на уровне уверенного чтения технической документации. - Инициативность, целеустремленность, активность, готовность к обучению. Является плюсом: - Опыт применения и адаптации готового стека TCP/IP для встроенного ПО. - Опыт разработки под RTOS. - Опыт разработки под Linux. - Знание стандартов и протоколов IEEE 802.3, IEC61850, IEC60870-5-101/104, NTP/SNTP. - Знание UML. - Базовое знание Python Мы предлагаем: - Фиксированный оклад+бонусная система - Социальный пакет (оплачиваемое питание, мед.страховка, дополнительные льготы) - Офис расположен Москва, м. Авиамоторная Резюме просьба высылать в личные сообщения или через hh.ru: http://hh.ru/vacancy/10932795?query=embedded
  4. Да, но проблема в том, что я не знаю откуда вызвалась функция, которая дёргает SignalISR. :) Она может вызваться не только из прерывания
  5. Да, действительно. Именно в этом прерывании и забыл TISRW. Спасибо. Заработало и с Signal.
  6. В документации написано, что TEventFlag::SignalISR() "нельзя использовать вне кода обработчика прерываний", так я его и не использую вне обработчика. А вот про TEventFlag::Signal() не написано, что его нельзя использовать в обработчике прерывания. А функция-член TEventFlag::SignalISR(), как написано, оптимизированный вариант для использования в прерываниях.
  7. Добрый день. Возникла проблема при использовании TEventFlag. Если в прерывании используестя метод SignalISR, то процесс, ожидающий событие просыпается, а если Signal, то не пробуждается. Причём перестают работать все процессы и крутимся в void TKernel::Sched(). Это так задумано, что в прерываниях я обязан использовать SignalISR или дело в чём-то другом? У кого-нибудь проявлялся данный эффект?
  8. Options\Linker: Generate linker listing, Static overlay map и т.д. Можно в виде HTML вывести
  9. И не забывайте о: http://blackjob.msk.ru/t6323.html http://electronix.ru/forum/index.php?showt...%CD%C8%C8%D5%CC http://electronix.ru/forum/index.php?showt...%CD%C8%C8%D5%CC http://baumanka.ru/forum/showthread.php?t=4280
  10. Проектирование ПО для микроконтроллеров: RUP + UML. И это работает ;)
  11. Вообще-то и первоначальный код прекрасно собрался. Пришлось только типы объявить. Компилятор IAR 5.11B for AVR, что при Embedded C++, что при Extended Embedded C++. Что я не так делаю? :) typedef unsigned char uint8_t; typedef unsigned long uint32_t; typedef union { uint32_t p; float f; } tUnion; typedef struct { uint8_t type; uint8_t info[4]; tUnion u; } tItem; const tItem Item[] = { {2, {1,2,4,2}, .u.f=1.5}, {1, {2,2,4,2}, .u.p=10}, {2, {3,2,4,2}, .u.f=2.3} }; P.S. Может расширение файла поменять нужно на cpp :laughing:
  12. Посмотри мой прикреплённый пример в этой теме http://electronix.ru/forum/index.php?showtopic=69248
  13. У меня выдаёт предупреждение: Warning[Pa081]: undefined behavior: the order of read and modification of variable "ptr" (or a value reached by some form of indirection through it) is undefined in this statement
  14. Что-то не получилось сделать через опцию -P -P(CODE)CODE=100-1FF,240-440 Error[e104]: Failed to fit all segments into specified ranges. Problem discovered in segment CODE. Unable to place 1 block(s) (0x23c byte(s) total) in 0x261 byte(s) of memory. The problem occurred while processing the segment placement command "-P(CODE)CODE=100-1FF,240-440", where at the moment of placement the available memory ranges were "CODE:100-1ff,CODE:240-440" Линкер не может сам разбить блок кода на два более мелких блока и расположить их по нужным областям. Пока решил проблему при помощи создания нового сегмента и поместил в него некоторые функции. Пример прикрепил. Возможно кому-то интересно будет посмотреть. Чтобы линкер не ругался необходимо убрать комментарий перед #pragma location. Может у кого-нибудь есть рабочий пример через опцию -P ? PlacingCode.rar
  15. Ещё раз по подробнее: Нужно сделать так, чтобы программа не занимала некоторые адреса. Решение мне видится так: 1. Либо положить по этим адресам что-то, для того чтобы линкер не положил туда часть программы. 2. Либо как-то перепрыгнуть эти адреса, желательно без помощи асма, а при помощи директив компилятора, линкера.