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

igorle

Свой
  • Постов

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

  • Посещение

Весь контент igorle


  1. stm32 embedded SRAM boot mode

    На моем учебном борде (stm32f103c8) я умею загружать программу через SWD или через UART. Хочу освоить загрузку из памяти, но не могу найти информацию ни на русском, ни на английском. Про bootloader (который с boot0=1 boot1=0) много говорят, а про SRAM (который boot0 = boot1 =1) только упоминают, что есть такой. И все. Работаю с Keilом. Я догадываюсь, что на закладке target в свойствах проекта надо начальный адрес с 0x08000000 на 0x20000000 поменять, и соответственно начало РАМ сдвинуть с 0x20000000 на 0x20002800, но этого не достаточно. Еще в настройках дебагера по умолчанию разрешалось использовать РАМ начиная с 20000000. Я это изменил на 20002800. Когда я пытаюсь забежать программу - получаю сообщение "Flash Download Filed". Логично, мы же должны грузить в РАМ, а не во флэш. Но где и как сказать - не догоняю. Кто-нибудь решал такую проблему?
  2. Само название "АСИНХРОННЫЙ" как бы намекает, что частота тут ДА, имеет значение. Частота сети определяет скорость вращения магнитного поля статора. В синхронном двигателе ротор вращается с этой скоростью. В асинхронном - ротор несколько отстает (потому и асинхронный). Упс. А выше =АК= то же самое написал. Ну, повторенье - мать ученья
  3. А какое устройство SPI? Некоторые устройства содержат адрес, который задается обвязкой чипа. В протоколе каждая команда начинается с адреса. В этом случае можно смело садить чипы на один CS - ответит только тот, к кому обратились. Остальные останутся в высокоимпедансном состоянии.
  4. В документации я не нашел, каким образом у MSP430 сконфигурировать GPIO как выход с открытым коллектором. Единственное упоминание о таком режиме - SDA и SCL сигналы у I2C. Это действительно невозможно для MSP430, или я что-то упустил?
  5. На английском. Там есть как минимум один человек, говорящий по русски. Но он обычно не занимается внешними связями. Помните что в Израиле выходные - пятница и суббота.
  6. Они этот процесс уже год как ведут. Можете посмотреть список "победителей". Там есть даты. Я не знаю, зачем он конечную дату публикуют, а потом корректируют. Хозяин - барин. Ну и, как помните, конкурс индивидуальный, а не коллективный. Так что лучше свои решения не публиковать.
  7. Посмотрели. Говорят, что с @kipspb.ru был один участник. Давно. Ответили ему в тот же день. От demiurg_spb получили письмо только 28 марта. Были праздники, но скоро ответят (может быть уже ответили) Очень удивлялись, что люди обсуждают на форуме и выкладывают решения конкурсных задач. Считают что это нелогичным. тем более, что конкурс продолжается.
  8. Нет, не надо. Просто подумал, что если пришло письмо на русском, это могло их сбить с толку. Я их буду трясти во вторник.
  9. Я позвонил человеку, который просил меня сделать перевод. Он сегодня не работает (в Израиле сейчас неделя праздников), поэтому сгодня проверить как так получилось не может. Вернется на работу во вторник. Сопроводительное письмо было? На английском?
  10. Это странно. Они всегда отвечают если не в тот же день, то на следующий. Скажите, пожалуйста, свой емэйл. Можно частично. Я им прямо сейчас позвоню и спрошу как так получилось, что не ответили.
  11. Все. Раз пошла такая ерунда - "баню" сам себя на неделю. Ариведерчи.
  12. Что не понял - действительно достадно. Если бы рядом был человек, который бы помог сделать первые шаги - было бы хорошо. А одному с наскока не получилсоь. По поводу всего остального - это я не Вам писал. Это было обращение к AVRу. Я сослался на Ваши слова, чтобы показать AVRу что GCC - очень хороший продукт, но при этом написан на высоком уровне абстракции. Ваше высказывание мне понравилось. Мне комфортнее читать a&0x7, вы напомнили, что компилятор выдаст для a%8 тот же результат. Я Вас понял и принял замечание. Более того, а знаю, что Вы, как раз, общаетесь с разработчиками GCC и пытаетесь улучшить компилятор. Так что прошу прощения за то, что неклюже вставил цитату на Вас в своем диалоге с ARV. Насколько я помню, у нас с Вами разногласий до сих пор не возникало. Пора, пора закрывать эту ветку....
  13. Знаете, ARV, я по началу думал что вы нас тролите. Но потом оценил количество написаного, и решил, что скорее всего вы искренни. Так что давайте так. Если вы толстый троль - то поздравляю, вам удалось сделать вброс в вентилятор. Равнодушных не осталось Если вы пишете искренне - я сделаю еще одну попытку. Вот смотрите, Herz пришел в эту ветку недавно. И хотя он позиционирует себя как электронщик, а не как программист, он прошел путь от возмущения до восхищения двумя восклицательными знаками всего за один день. 25-го он назвал это абсурдом, 26-го сказал, что примет на вооружение. Это обычный путь думающих и развивающихся людей. Я, вообще-то, программист, который решил расширить область знаний в сторону электроники. Что бы мне не отвечали на мои вопросы по электронике, я пытаюсь понять, а не оспорить. В раздел программирования пошел только за тем, чтобы попытаться чем-то отплатить форуму. Но глядя на результаты своего участия здесь, уже не уверен что стоило начинать. Когда (если) вы, ARV, ответите на мои вопросы про электронике, я попытаюсь их понять, но не оспорить. Кто вы в первую очередь? Электронщик - тогда учитесь программировать. Программист? Тогда зачем Вам тратить драгоценные силы на споры с электронищками о программировании? Поскольку у Вас свой путь в истории, то предлагаю Будьте последовательны. Стандарт предусматривает запись типа x = x + 10 С математической точки зрения это полная ерунда, так как не может быть верно ни при каких значениях x Добейтесь признания сообщества, что так писать нельзя. Затем: Видите, какие умные компиляторы стали? А Вы код компилятора видели? Я пытался понять один кусочек кода GCC (подозревал, что там есть баг) и не понял ничего :( Уровень абстракции в том месте куда я сунулся был не сравнить с тем, что здесь подавалось как высший пилотаж. Так вот, вместо того, чтобы тратить свои душевные силы на нас, недалеких, идите на форумы, где тусуются авторы GCC и откройте глаза им на то, как правильно писать код.
  14. Абсолютно верно. NULL означает, что объект находится по адресу ноль. Обычно - защищенная область. Как поется в песне "Ай-ай-ай туда нельзя"
  15. Я искренне рад, что неожиданно вспыхнувший флейм закончился впорлне миролюбиво, и позволил всем участникам (в том числе и мне) расширить как диапазон познаний, так и диапазон терпимости. Может быть вообще закрыть эту тему? От греха подальше. Слишком общая она. "Весь Си в одном флаконе" Да, конечно отрицание, а не инверсию. Как уже говорили - скомпилированный код будет одинаковый. А ставить один или два восклицательных знака - дело привычки. Не более того. Как я уже говорил - для меня !! означает кастинг к булевому типу.
  16. Попробовать - можно. Делать - не стоит. Операция "остаток от деления" очень тяжелая. Для расширения кругозора можно сделать вот так: с=(!a + !b) & 0x1; Вам, как "ученику" - домашнее задание. Объясните как работает эта конструкция Вариант !!a ^ !!b мне нравится больше, так как в нем прямо написано - выполнить КСОР Я НЕ пишу !a ^ !b, так как результат и логически, и в двоичном коде будет одинаковый, но !! означает "превратить в булеву форму", а один восклицательный знак означает инверсию, что заставляет задуматься - а не поменялась ли здесь логика. 2 Herz - мистер ARV ратует не за простоту. Он ратует за исключение из языка всех форм, выходящих за рамки лексикона людоедки Элочки. Объясняя это тем, что "вы тут слишком вумные, простым работягам это ни к чему". Выжечь, говорит, эту гидру каленым железом (тупыми ножницами) Насчет понимания. Короткие посты понять легче, чем многостраничный поток сознания. Специалист говрит - XOR a и b , и его понял другой специалист. А имярек говорит "тут, эта, такая величина, что если а истино, а b - ложно, то эта величина будет истина. Или если a ложно а b - истино, то величина тоже будет истина" Если вы не специалист и не знаете что такое XOR, то вы поймете второго, но став специалистом, глупо продолжать использовать такие конструкции.
  17. Я Вас теряю. Вы пишите Когда я объясняю, в чем разница между 0 и "\0", вы говорите Нет. Вы написали "\0", поэтому я говорил об "\0", а не об '\0'. Логично, да? После этого я даю вам пример, где распечатываю поинтер (%p), и показываю в чем разница между 0 и "\0", а вы печатаете совсем другой пример, где распечатываете строку (%s) и даете совсем другие аргументы. Я не улавливаю ход Вашей мысли.
  18. MSP430G2553IPW28 Это относительно "навороченный". Стоит доллар. Есть еще дешевле.
  19. Keil simulator stm32f3discovery

    Осваиваю Keil и stm32f3discovery Разбираю примеры. В какой-то момент захотел поработать с симулятором. Пошел в Options -> Debug и выбрал Use Simulator и проверел что помечено "Run to main()" Однако, при попытке забежать процесс PC равен нулю и программа не стартует. Создал сам новый проект, убедился что для него симулятор работает, а затем начал сравнивать постранично настройки. Оказалось, что дело таки в закладке Debug. Там есть поля параметров для CPU DLL и Dialog DLL. В проекте из discovery параметров нет, в сгенерированом мною у Cpu DLL параметры -MPU -REMAP, и у Dialog DLL - -pCM4. Именно REMAP оказался ответственным за мою проблему. Когда я его добавил - все заработало. Однако я нигде не нашел - для чего эти две DLL, какие параметры у них есть и за что они отвечают. Например, я пока не увидел влияние MPU и pCM4. Кто-то изучал этот вопрос?
  20. Вот видите как полезно читать классиков. Суть в том, что сумма результата деления умноженного на делитель и остатка от деления дают исходное число. Таким образом результат будет или -1, или 9. В зависимости от платформы. Кстати, мне пока не попадалась платформа, где округление для отрицательных чисел шло в минус. В смысле -11/10 может на рекоторых платформах давать -2. Тогда остаток от деления будет 9. Но на всех платформах, где я проверял, результат от деления был -1, соответственно остаток от деления - тоже -1. 5 - это не указатель. Это целое. Которое будет складываться с указателем.
  21. Исходный код делится на "кирпичики". Оператор "[]" при использовании описывается где-то так: операнды должны быть один - типа поинтер, другой - целое Сложить операнды. (результатом будет поинтер) выполнить опрацию разыменовывания. Это логика, но отнюдь не шарлатанство. Объявление переменной и применение переменной - разные вещи. Вас не смущает, что звездочка может означать и умножение, и указатель, и разыменовывание в зависимости от контекста. Кстати, недостаток логики повергает многих в задумчивость, когда просишь сказать чему равен (-11)%10. А у классиков здесь все четко и просто. Ээээ. Дело привычки. Вспомнил, как давным давно (а я весьма стар), когда мы начинали изучать программирование, мой однокурсник возмущался, что нельзя писать x=x+10, потому что это бред и не может быть верным ни при каком значении x Уже сегодня вечером вы, не задумываясь, будете думать Ведь a[] - это массив, а 5[] - это шестой элемент массива.
  22. Очень красивый пример. Действительно, такой код читабельнее. Как и в случае с ксором - взгляд сразу выхватывает суть. Инкремент указателя сдвигает указатель на следующий элемент массива. Написав a[5], мы говорим сложи a и 5, и верни нам значение, которое хранится в полученом адресе Написав 5[a], мы говорим сложи 5 и a, и верни нам значение, которое хранится в полученом адресе Поскольку 5+a и a+5 дают одинаковый результат, то и получается, что конструкции эквивалентны.
  23. Вот смотрите до чего вы докатились. Вы уже говорите о знаниях как о бацилле. Приравняли ЗНАНИЯ к ЧУМЕ. Средневековье какое-то. Завтра вы начнете книгу K&R жечь на кострах. Интересно, а как вы, не обремененный лишними знаниями, будете писать несложные, но выходящие за рамки банальных знаний функции. Как вы и ваши ученики будут писать прототип функции с одним аргументом, получающей 1) указатель на массив типа int a[10][10]; 2) указатель на массив типа int *a[10]; 3) указатель на функцию, получающую в качестве аргумента указатель из первого вопроса, а возвращающую указатель из второго вопроса. Надеюсь вы не считаете, что подобные функции никому не нужны? Совсем на пальцах a[5] эквивалентно *(a+5) От перемены мест слагаемых...
  24. Вот уж не ожидал, что Вы до сих пор помните, с чего весь кипеж начался. Я искренне удивлен, что Вы до сих пор не поняли, (хотя это было повторено много раз), что это код не для использования, а для того чтобы продемонстрировать как работает Си. В данном случае - в какой области действуют переменные. Одинаковое имя выбрано НАМЕРЕННО. Затем Вам показали, что В УЧЕБНЫХ целях полезно ПОНЯТЬ, почему 5[a] эквивалентно a[5]. Так писать в реальном коде никто не призывал. А писать так "0123456789abcdef" - да, можно и бывает полезно. В ответ Вы завелись. Досталось и здесь присутствующим, и Кенигану с Ричи. Хотя осторумнее с Вашей сторны было бы понять, о чем говорят опоненты. Давайте еще раз попробуем. Такой код НУЖНО использовать при обучении, для демонстрации области дейстия автоматических переменных.
×
×
  • Создать...