adnega
-
Постов
3 594 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
Сообщения, опубликованные adnega
-
-
Ручку было бы получить (и использовать) приятно.
А уж кружку... предел мечтаний)
-
Я тоже морозил F100 серию, но нет такого холодильника, чтоб до – 60, довольствовался уличными -30. Все ОК работало. А нагревать не пробывали, как там со стабильностью?
Греть проще. До +85 и выше точно грел, но не на прогоне.
Кстати, встроенный датчик температуры (и внутренняя опора) очень даже ничего)
-
На той неделе "морозили" изделие на основе STM32F1xx.
При температуре ниже минус 65 работало без проблем (ниже не получалось).
Если нужны подробности, можно их развить.
-
Кто-нибудь уже запускал таймер в данном режиме? поделитесь опытом какие тут подводные камни.
Запускал на 103-их. Никаких камней под водой не обнаружено.
До исходников могу добраться только вечером.
-
Ячейка от блинкерного табло?
-
А как компиллятор узнает ядро?
Ключики -mcpu=cortex-m3 -mthumb присутствуют?
-
Есть мнение, что биометрический считыватель не хранит образ пальца...
Идет сравнение с образцом, на каждого юзера по 10 пальцев, всего юзеров может быть несколько тысяч, напряжно перебирать фотки пальцев.
Образец занимает порядка 300 байт.
Восстановить исходный отпечаток, по-моему, не возможно.
А что за система у Вас внедряется?
Какие именно считыватели (производитель)?
-
Ну, у STM тоже есть "проблемы" в библиотеках...
И по личному опыту: библиотеки не всегда ускоряют разработку.
Она (разработка) становится "рывковой" что ли... - одна функция инициализирует все, что надо, а над другой сидишь часами (или ищешь нужную).
PS. Сейчас стараемся использовать стандартную библиотеку STM, и с приобретением опыта становится все лучше)
PS2. От "индуского кода" никто не застрахован(
-
Опишите пожалуйста подробнее свою специализацию:
- аналоговая электроника?
- силовая?
- СВЧ?
- цифровая электроника?
- ПЛИС?
- микроконтроллеры?
- программное обеспечение?
- для ПК? Windows? Linux?
- C/C++?
- Java?
- для МК?
- C? Asm?
- платформы МК?
- PIC? AVR? ARM?
Реально по Ярославлю можно предложить ряд "халтурок":
- разработка контроллера для DMX-димеров (управление шаговыми двигателями, ЦАП выходы с эффектами);
- разработка установки высоковольтного тестирования кабелей и т.п.;
- даже есть вариант контроллера для СВЧ-синезатора частот.
На что можно расчитывать?
-
А как же STM32F4xx?
-
По поводу дизассемблирования: машинный код после оптимизации в ряде случаев нечитаем даже автором исходника. И это с учетом человеческих имен меток, переменных и функций.
Думаю, либа + заголовочный файл вполне защитит "исходный код" от восстановления.
Если матан в ноу-хау приличный, то это дополнительный барьер к взлому, а если "2 + 2", то защищать такое ноу-хау крутыми защитами не целесообразно.
-
Друзья, к качеству производства никогда претензий не было (по крайне мере у меня).
Я двумя руками за "невмешательство в проект". В будущем буду аккуратнее.
Если кто не понял, то обсуждается не технический момент, а работа с клиентом.
Для Исполнителя очевидно (я надеюсь), что платы с описанным выше дефектом Заказчик использовать не сможет - нужен был всего лишь один звонок. Это где-то на грани дружеского совета: мол, уважаемый, нам сделать-то не сложно, но фигня получится...
Печатные платы мы изготовили новым заказом.
Если цена вопроса была бы раз эдак в сто больше и пришлось бы обращаться в суд...
Кстати, Резонит сертифицирован по ISO9001 ?
-
-
воткните комиллеру опции -mthumb -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
будет генерится код для fpu, в сборке под cortex-m4f все протянуто (libgcc,libc,libm)
с нетерпением жду результов
следующий свежак будет 'мои релизом', поэтому хочется его оотестить в хвос и в гриву. будет особыс спросбом собраны libgcc и libc(newlib) чтоб гарантировать чоб в бинарь неприлазило вско гадость.
Спасибо, буду пробовать.
Боюсь, что воевать придется с либой, которая поставляется с демо-примером...
Кста, у Вас уже есть на чем самому пробовать?
-
Была ситуация очень напоминающая Вашу, только датчик как бы... "сжаривался" при t > 90C.
Вообще не отрабатывалось условие START.
Времянки делал через UART (распространенное явление), так вот при высокой температуре времянки датчика "уплыли" и в UART приходило не то, что ожидалось.
Поборол софтово.
-
Попробуйте то же самое на yagarto - есть подозрение, что проблема в "демке", а не в компиляторе.
С демкой разобрался, но с FPU пока не работает (не уверен).
-
Появилась доска STM32F4DISCOVERY.
Собрал из исходников демку для -mcpu=cortex-m4: без оптимизации работает, с оптимизацией - пока нет)
Демка сурьезная: играет WAV-файл с флешки.
P.S.: Не работает только с -Os, на -O1 и -O2 работает)
P.S.2: Работает на всех уровнях оптимизации!
-
зачем извращатся лишней инструкцийе, попробуйте потестить оновленую сборку (-2 поста вверх), все соберется из стндартных исходников
Собирается.
Но про равенство регистров нужно помнить...
-
А так пойдет?
uint32_t __STREXB(uint8_t value, uint8_t *addr) { uint32_t result=0; // __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); __ASM volatile ("strexb r2, %2, [%1] \n" \ " mov %0, r2" : "=r" (result) : "r" (addr), "r" (value) : "r2" ); return(result); }
Из плюсов: не ругается и компилиться
Из минусов: правка стандартного файла и не гарантируется несовпадение регистров.
-
Эхх...
test.s:493: Error: registers may not be the same -- `strexb r0,r0,[r1]'
test.s:517: Error: registers may not be the same -- `strexh r0,r0,[r1]'
test.s
.align 1 .global __STREXB .thumb .thumb_func .type __STREXB, %function __STREXB: .LFB19: .loc 1 733 0 .cfi_startproc @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. .LVL34: .loc 1 736 0 @ 736 "c:/gcc/lib/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c" 1 strexb r0, r0, [r1] <-- 493 line @ 0 "" 2 .LVL35: .loc 1 738 0 .thumb bx lr .cfi_endproc .LFE19: .size __STREXB, .-__STREXB .align 1 .global __STREXH .thumb .thumb_func .type __STREXH, %function __STREXH: .LFB20: .loc 1 750 0 .cfi_startproc @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. .LVL36: .loc 1 753 0 @ 753 "c:/gcc/lib/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c" 1 strexh r0, r0, [r1] <-- 517 line
А это исходный текст
/** * @brief STR Exclusive (8 bit) * * @param value value to store * @param *addr address pointer * @return successful / failed * * Exclusive STR command for 8 bit values */ uint32_t __STREXB(uint8_t value, uint8_t *addr) { uint32_t result=0; __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); return(result); } /** * @brief STR Exclusive (16 bit) * * @param value value to store * @param *addr address pointer * @return successful / failed * * Exclusive STR command for 16 bit values */ uint32_t __STREXH(uint16_t value, uint16_t *addr) { uint32_t result=0; __ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); return(result); }
A.3.8 LDREX and STREX
Load and Store Register Exclusive.
Syntax
LDREX{cond} Rt, [Rn {, #offset}]
STREX{cond} Rd, Rt, [Rn {, #offset}]
LDREXB{cond} Rt, [Rn]
STREXB{cond} Rd, Rt, [Rn]
LDREXH{cond} Rt, [Rn]
STREXH{cond} Rd, Rt, [Rn]
where
cond is an optional condition code; see “Conditional Execution” section on page 358.
Rd is the destination register for the returned status.
Rt is the register to load or store.
Rn is the register on which the memory address is based.
offset is an optional offset applied to the value in Rn. If offset is omitted, the address is the value in Rn.
Restrictions
In these instructions:
- Do not use PC.
- Do not use SP for Rd and Rt.
- For STREX, Rd must be different from both Rt and Rn.
- The value of offset must be a multiple of 4 in the range 0–1020.
-
Мне посчастливилось быть у них на экскурсии... Даже те цеха, в которые нас допустили, оставили незабываемые впечатления. Особенно линия автоматического монтажа и испытательный, не побоюсь этого слова, полигон.
-
На предыдущей версии собиралось без проблем.
C:\gcc\arm-kgp-eabi-x86_32_20111120\bin>arm-kgp-eabi-gcc.exe -mcpu=cortex-m3 -mthumb -g -O0 -c test.s -o test.o
test.s: Assembler messages:
test.s:103: Error: SVC is not permitted on this architecture
test.s:
@ 153 "c:/gcc/FreeRTOS/Source/portable/GCC/ARM_CM3/port.c" 1
ldr r0, =0xE000ED08
ldr r0, [r0]
ldr r0, [r0]
msr msp, r0
cpsie i
svc 0 <- 103 line
nop
-
Есть еще вариант "я не знаю механизм зарплатообразования".
Например, каждый месяц получаешь приблизительно одни и те же деньги, но сам расклад по "оклад-премия" непредсказуемый и зависит от настроений, оборота компании, командировочных, и т.п.
Повлиять на зарплату практически не возможно) Ну, разве что сходить в оплачиваемый отпуск на недельку или на больничный залететь...
-
Понятно. Интересно, как он там оказался. Видимо, ошиблись при создании компонента именно в маске. А если бы рисовали так, как я говорю, то проблем бы не было.
В конце концов, есть промежуточный вариант: маску корректировать программами подготовки к производству, а компоненты все-таки рисовать без учета этих требований.
Для создания этой платы пользовался KiCADом. В библиотеке компонентов зазоры можно не указывать, тогда значение берется из глобальной переменной. Тем не менее зазоры можно указывать индивидуально хоть для целого компонента, хоть для выбраного PADа.
В спешке был задан очень маленький отступ при заливке земляным полигоном - 0.25мм (обычно ставлю 0.4мм).
В глобальной переменной, отвечающей за зазор маски - тоже 0.25мм.
Срочно нужно было изготовить прототип, и большого значения отступам придавать не стали...
Ошибка грубая и между тем легко (я бы даже сказал тривиально) исправимая, просто нужна была обратноя связь...
PS. За день до получения плат я поднимал вопрос тех норм на форуме Резонита. Полученная информация целиком соответствовала моим представлениям о тех требованиях. Как сказать KiCADу о нормах мне тоже прекрасно известно.
Если позволите немного уместного оффтопа:
Летом делал ремонт в туалете. Обратился в фирму, заключил договор, внес предоплату и т.п. чтобы мне заменили сантехнику, и положили на пол плитку. Прайс меня устроил, сумму тоже в голове представлял. Сам я там не живу...
После того как работа была выполнена (точнее та часть, на которую хватило предоплаты), оказалось, что половина стоимости ремонта это... вывоз мусора! Моя фраза, снять старую краску с пола, залить стяжку и положить плитку чудесным образом сподвигла мастеров расфигачить пол на 10см в глубину, не согласовав работы со мной (хотя это существенный объем работ, денеги и доп материалы)! Вот откуда 20 мешков мусора)
С дирехтуром обсудили это недоразуменее, сумму я ему мог заплатить, но о дальнейшем сотрудничестве речи идти не могло.
Знаете, работать со специалистами, которых нанимаешь для профессиональной кладки плитки, а им выгоднее выносить мусор (по их расценкам), не хочется)
PS. Да, директор вскоре мне перезвонил, извинился, сделал "беспрецидентную" скидку на вынос мусора, и мы аккуратно продолжили осваивать мои деньги... Каждый имеет право на ошибку, но главное не бояться это признать, простить и жить плодотворно дальше, делая мир лучше)
Накрылся блок питания компьютера
в Силовая Преобразовательная Техника
Опубликовано · Пожаловаться
Что выступает в качестве нагрузки для линий +5В и +12В?