Какой мк умеет исполнять код из sram ?

Тема в разделе "Arduino & Shields", создана пользователем Ariadna-on-Line, 19 фев 2022.

  1. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Имеется в виду неэкзотический и недорогой проц, для Ардуино-подобной конструкции.
     
    Последнее редактирование: 19 фев 2022
  2. parovoZZ

    parovoZZ Гуру

    Любой микропроцессор (собственно, микропроцессоры по-другому и не умеют). Например, ESP8266, ESP32
    Из МК те, что на Гарвардской архитектуре. Это любой МК на ядре ARM.
     
    Последнее редактирование: 19 фев 2022
    Igor68 нравится это.
  3. DetSimen

    DetSimen Гуру

    За STM я чёто такое слышал
     
    Igor68 нравится это.
  4. Igor68

    Igor68 Гуру

    Уважаемый @parovoZZ сказал в точку... особенно про ARM.
    Вы так же сказали про STM32 - он Cortex, который то же ARM.
     
  5. Ariadna-on-Line

    Ariadna-on-Line Гуру

    https://robocraft.ru/ARM/711
    Вот тут написано что это Гарвардская архитектура, а не Неймана (Пристонская).
    Впрочем, это не важно.
    Вопрос к тому. что Ардуинский бутлоадер пишет во флешь. Это в теории приводит к деградации части флеша (вне самого бутлоадера). Вот и любопытно - как этого можно было бы избежать. Режим интерпретации напрашивается - но ессно сильно снизит скорость.
     
    Последнее редактирование: 19 фев 2022
  6. Igor68

    Igor68 Гуру

    А счётчик команд (PC) точно умеет указывать на область данных и извлекать из неё инструкции для исполнения, если эта область не в едином адресном пространстве с областью кода?

    ЗЫ: я про себя: не отличаю по буквам Гарвардскую и Неймана архитектуру... так же для меня не понятна архитектура ТЫР-ДЫР-САДЫК. Я отличаю их только по смыслу(последняя мне не известна)... и сегмент кода, и сегмент данных могут быть разными в едином физическом пространстве, но не могут быть едины в разных физических пространствах. Что касается ARM - посмотрите внимательно на распределение адресов и доступ к ним.

    ЗЫ: Вопрос: x86 - какой архитектуры, при размещении сегмента данных и сегмента кода в одном ОЗУ. А если Вы про ограничение доступа к памяти, то это контроллер(программируемый) доступа к памяти (смотрите тот же STM)... да хотя бы защищенный режим (пользователь, система).
     
    Последнее редактирование: 19 фев 2022
  7. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Во времена ДОС редактировать игры лезли все кому не лень. Ессно про контрольную сумму и как с ней бороться знал любой хакер. Гонял в отладчике прогу - никаких контрольных сумм не было, но была команда перехода исполнения - на адрес занимаемый названием производителя игры!!!. Название не помню, но оно было вполне благозвучным. А в 16-ричном виде было чередой отправки в стек, извлечения из стека и еще мелких команд. В сумме было равносильно "nop"-у. Изменение хоть одной буквы имени производителя сбивало программу. То есть означало - пожалуйста редактируй, но имей совесть не присваивать авторство. Вот так работала архитектура Неймана.
     
    Последнее редактирование: 19 фев 2022
  8. Igor68

    Igor68 Гуру

    Да верно, так и было. Я делал программатор (была плата Atm-turbo) с доступом по LPT порту... и всё это помню. Но было необычно сначала видеть XXXX:XXXX(hex) против XXXX(hex), который был в ПАРТНЁР-01.01 да и на Орион-128. Так-то оно так, но страничный метод был давно, но это совсем не означает что полностью разное пространство. Тот же КР560ВМ80А мог адресовать только 0x0000-0xFFFF(hex) то тут процессор не умеет адресовать более 0xFFFF, но ведь и PIC16F877 имея только счётчик команд 0x000-0xFFF имел ОЗУ 8192 байта насколько помню. Так можно назвать такую архитектуру полностью не единым адресным пространством? Там есть механизм выбора одного из 4-х банков по 2048 байт, но при этом PC указывает на адрес в выбранном банке.

    ЗЫ: помню делал код для PIC16F877, он вышел да пределы 2047 и выбор следующей команды был с начального адреса, пока не сделал геморройное переключение банка - нужно было следить за адресами(границами). А вот вызов подпрограмм, что находятся в младших банках из места в старших банков меня вывел в ступор сначала... и пришлось делать "шапку" в начале каждого банка как раз для перехода. Всё было на ассемблере - доступного Си в то время у меня не было. И всё равно я не считаю, что это не единое адресное пространство.
    А вот на x86 у меня был Борланд Си и я не парился особо.
     
    Последнее редактирование: 19 фев 2022
    DetSimen нравится это.