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

kan35

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

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

  • Посещение

  • Победитель дней

    1

kan35 стал победителем дня 22 августа 2023

kan35 имел наиболее популярный контент!

Репутация

7 Обычный

Информация о kan35

  • Звание
    Знающий
    Знающий

Посетители профиля

3 478 просмотров профиля
  1. Application Jump ch32v003

    Такой код если? asm volatile( "la ra, 0x80001800\n\t" "jalr ra" );
  2. Вас не понять, то Вы собираетесь менять пластик на STM, то говорите про 5ю приемку, я запутался, извините.
  3. Не знаю, где Вы металлокерамику видите. Обычный пластик, такой же как у STM, посмотрите на правую часть таблицы, там корпуса обозначены.
  4. У Микрона довольно неплохой набор LDO и DCDC https://mikron.ru/products/chip-power-management/ldo-voltage-regulators/
  5. Микрон проводит публичный технический практикум на МК Амур. Участие - бесплатное. 2 города - Новосибирск и Екатеринбург. https://www.mcu.mikron.ru/technical-training
  6. 2 миллиона микроконтроллеров на два года это слёзы. Не знаю получится ли у микрона столько хотя бы изготовить, но рынок заберет их легко, не говоря уже про балльные проекты.
  7. А Вы нам и не нужны уже! Мы же тут плодотворно общаемся))) (шучу, конечно же)
  8. itoa - тоже можно, только вот прелесть библиотек в том, чтобы взять что-то хорошо сделанное и использовать его для своего блага, а itoa можно и свой написать за 5 минут. Как вариант - есть еще от coremark printf (а может они сами его где-то позаимствовали), с опциональной поддержкой плавающей точки. Он тоже единицы кБ занимает. https://github.com/eembc/coremark/tree/main/barebones
  9. Чтобы вручную не переключать --specs=nano.specs, полнота выбирается в свойствах линкера. Там же включается поддержка плавающей точки.
  10. Я там выше писал, компилятор - С18, для pic18. ANSI 89. И спасибо всем за комментарии
  11. Регистр объявлен так: extern volatile far unsigned char RCREG4; не хотелось бы делать { тип i = RCREG4; } (у меня на самом деле оно примерно так и есть) Хочу, чтобы переменная в стеке не появлялась совсем. Просто поясню зачем мне это нужно: сейчас занялся высвобождением памяти, контролируя глубину стеков всех задач, таким образом, спасая один байт в обработчике прерываний я могу убавить стеки в 6ти задачах на 1, то есть по сути высвободится 6 байт. у меня такая мысль тоже была, но есть нюанс - в какой регистр свободен в этот момент... Я конечно применяю, совсем простые инструкции, типа: void vApplicationIdleHook( void ) { _asm sleep _endasm } А вот с регистрами уже просадка... плохо понимаю архитекктуру выходного кода, да и архитектуру процессора тоже плохо осознаю 🙂
  12. Заменил unsigned char byte; byte = RCREG4; byte = RCREG4; byte = RCREG4; на (void)RCREG4; (void)RCREG4; (void)RCREG4; и по результату работы кода вижу, что он уже не делает вычитку из регистра. Компилятор C18 к сожалению не знаю как можно посмотреть дизассемблер этого куска кода... Есть ли еще что-нибудь более жестко регламентирующее, чтобы он не удалял эти строки из работы?
  13. Доброго дня всем! Пробую уменьшить расход стеков, компилятор у меня с очень низкими возможностями оптимизации, потому вот такой вопрос: Нужно считать несколько раз регистр, но само значение не нужно. Сейчас я завожу переменную и читаю в неё. unsigned char byte; byte = RCREG4; byte = RCREG4; byte = RCREG4; Но это же бессмысленно, как записать в Си чтение в никуда? Спасибо всем.
  14. Всем доброго дня, Есть подозрение на недостаточность стека в определенных случаях. Попытался использовать функцию uxTaskGetStackHighWaterMark. Из описания https://www.freertos.org/uxTaskGetStackHighWaterMark.html следует, что нужно лишь определить INCLUDE_uxTaskGetStackHighWaterMark -> 1 Правильно ли я понимаю, что он заполняет стек определенным числом и потом вычитывает и смотрит на сколько он залез на шаблон?
×
×
  • Создать...