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

pyroman

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

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

  • Посещение

Репутация

2 Обычный

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

  • Звание
    Частый гость
    Частый гость

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

1 609 просмотров профиля
  1. Не спорю - описаны, но буквально в двух словах, которые не дают нужной информации. Можете привести цитату из документации, где будет ответ на мои вопросы, изложенные выше?
  2. Добрый день. Поставили в тупик некоторые ножки. В SIM7022 Hardware Design информации нет. - BOOT. Куда и чем её подтягивать в нормальном (не загрузчик) режиме? - STATUS. High level: Power on and firmware ready Low level: Power off. Это всё? Так у sim7022 всегда Power on, POWER_KEY же чтобы вкл/выкл нет... Просто готовность прошивки? - AON_GPIO Это что такое вообще?
  3. unsigned long data; signed long result; data = 0xC1480000; //-12.5 if (data != 0) { result = (data & 0x007FFFFF | 0x00800000) * 10 >> (150 - (data >> 23 & 0xFF)); if (data & 0x80000000) //знак числа result = -result; } else result = 0;
  4. Интересно - сколько времени занимает просто преобразование? int result = a;
  5. Разве компилятор не сделает за вас быстрее преобразование из float в int? Проблема в умножении на 10?
  6. Когда создаёшь проект в Cube, выбираешь контроллер, автоматом скачивается STM32Cube_FW на нужное семейство, там и CMSIS есть.
  7. DECLARING OBJECTS VOLATILE AND CONST If you declare a volatile object const, it will be write-protected but it will still be stored in RAM memory as the C standard specifies. To store the object in read-only memory instead, but still make it possible to access it as a const volatile object, declare it with the __ro_placement attribute. See __ro_placement, page 371. To store the object in read-only memory instead, but still make it possible to access it as a const volatile object, define the variable like this: const volatile int x @ "FLASH"; The compiler will generate the read/write section FLASH. That section should be placed in ROM and is used for manually initializing the variables when the application starts up. Thereafter, the initializers can be reflashed with other values at any time.
  8. У меня, правда, в EWAVR компилятор выбрасывает обращение к volatile переменной, размещённой в ОЗУ, на high-оптимизации. Вот этот прикол я тоже не понял...
  9. http://microsin.net/programming/arm/iar40-absolute-location-placement.html В следующих примерах определены два объекта const, где первый инициализирован в 0, и второй инициализирован в указанное значение. Оба объекта будут размещены в ROM (FLASH). Это полезно для конфигурационных параметров, к которым планируется осуществлять доступ через некий внешний интерфейс. Обратите внимание на то, что во втором случае компилятор не обязан фактически читать из переменной, потому что её значение заранее известно. Чтобы обеспечить принудительное чтение компилятором переменной, определите её как volatile: #pragma location=0x1004 volatile const int beta; volatile const int gamma @ 0x1008 = 3;
  10. Пробовал как-то изобрести велосипед и сделать стек-IP. Работающие ARP, DHCP, UDP заняли 6 кБ. Возможно, в Вашем случае лучшим выбором будет uIP.
  11. #pragma vector=TIMER1_COMPA_vect __raw __interrupt void TIMER1_COMPA_ISR(void) Нашёл - специально для прерываний есть __raw
  12. Спасибо, он есть, но __task void main( void ) ничего не изменило А к процедуре прерывания это не применимо. #pragma vector=TIMER1_COMPA_vect __noreturn __interrupt void TIMER1_COMPA_ISR(void) { ... } __task void main( void ) { __sleep(); } Получилось... Помог __noreturn
×
×
  • Создать...