-
Постов
20 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о sla000
-
Звание
Участник
- День рождения 06.03.1978
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
-
С чем связана такая неприязнь к libgcc? При грамотном подходе оттуда импортируется только одна эта функция. Как вариант - можно подсмотреть реализацию в исходниках libgcc.
-
Если перед void clear_flag(void){ поставить static, то скорее всего компилятор заинлайнит функцию (зависит от выбранной оптимизации), и второй вариант даст такой же код как и первый.
-
STM32F4Discovery
sla000 ответил graf_vladislav тема в ARM
Эти записи не равнозначны. Первая сбрасывает все биты а младший бит устанавливает, вторая только устанавливает младший бит. -
Немного уменьшить вроде возможно, для подстраховки можно пользовать uxTaskGetStackHighWaterMark().
-
Keil + hg (mercurial)
sla000 ответил yurmala тема в Управление проектами
Можно прикрутить вызов консольных команд через "Customize Tools Menu...". Только зачем? TortoiseHG гораздо приятнее. Сам Keil можно (нужно) поменять на eclipse, там можно плугин с меркуриалом поставить (если так нравятся встроенные варианты тулсов). -
I2C1 случайно не включен? В еррате про это есть...
-
Попробуйте скачать свежую либу на свой проц. Там есть примеры инициализации таймера. В примере NVIC_EnableIRQ() вообще не вызывается, используется ф-я NVIC_Init(). У меня сделано примерно так: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); static const TIM_TimeBaseInitTypeDef init = { // .TIM_Prescaler = 0, // .TIM_CounterMode = TIM_CounterMode_Up, // .TIM_Period = 0xFFFF, // .TIM_ClockDivision = TIM_CKD_DIV1, }; TIM_TimeBaseInit(TIM2, (TIM_TimeBaseInitTypeDef*) &init); static const NVIC_InitTypeDef nvic = { .NVIC_IRQChannel = TIM2_IRQn, .NVIC_IRQChannelPreemptionPriority = 0, .NVIC_IRQChannelSubPriority = 1, .NVIC_IRQChannelCmd = ENABLE, }; NVIC_Init((NVIC_InitTypeDef*)&nvic); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); TIM_Cmd(TIM2, ENABLE);
-
http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gc...esignated-Inits Another syntax which has the same meaning, obsolete since GCC 2.5, is `fieldname:', as shown here: struct point p = { y: yvalue, x: xvalue }; Хоть и obsolete, но GCC 4.6 это еще компилит, и TCC тоже.
-
Еще варианты: struct _key Key = {.alt = {0, 1, 2},}; struct _key Key2 = {alt : {0, 1, 2},}; Второй вариант может не прокатить, вроде это расширение для GCC.
-
Не хватает условий, какой трафик планируется, нужен ли анлим или хватит помегабайтного, нужен ли постоянный доступ в сеть или только ночью, какая скорость нужна GPRS или 3G? Ответьте сами себе на эти вопросы, может и на форум не придется писать. Не так много у нас операторов, можно за час все тарифы посмотреть на сайтах. Исходя из средних гипотетических требований предлагаю такой вариант: 1) TELE2. 2) Не TELE2.
-
Программист МК
sla000 ответил illusion тема в Предлагаю работу
7000 руб - это зарплата уборщицы за месяц, 3 часа работы в день -
can
sla000 ответил ZhekaG тема в Controller Area Network (CAN)
Не совсем понятно что нужно проверить - связь с самим контроллером CAN или связь с другим устройством на шине CAN. Для первого случаю рекомендую записать данные в какой-нибудь read-write регистр контроллера, и потом прочитать обратно, если оно - значит ОК. Для второго - самое верное сделать 2 железки и завязать в сеть, т.е. проверить работу непосредственно на практике. Второй вариант - не знаю насчет MCP, но у Silabs есть режим loopback - можно отправить сообщение самому себе (наружу сигнал не проходит, RX фактически закорочен на TX), все равно что пингануть localhost. -
Странно, уж хотя бы main то должен остаться. У меня это ключ отлично работает в avr-gcc и arm-gcc.
-
Нет, гляньте в мейкфайл, там есть список файлов SRC и SRCARM, так вот, если вы создадите файлик с телом перывания, то его надо добавить в список SRCARM. Так он скомпилится в ARM режиме. Соответсвенно всю остальную требуху - инициализацию таймера и т.п. можно запихнуть в SRC, тогда они скомпилятся в THUMB. Да не переживайте вы так ) зачем вам вообще надо программировать на асме? Ну если уж так интересно читайте документацию на архитектуру ARM7TDMI есть на сайте ATMEL. У FreeRTOS есть совершенно четкие указания как должно выглядеть прерывание. Если им не следовать результат непредсказуем, но 100% что все пойдет не так как должно. Как должно быть обрамлено прерывание можно почитать тут: http://www.freertos.org/portsam7xlwIP.html