Алексей Бобров, я конечно такое еще не делал, но какая передача нужна? проводная или беспоровдная? если провод, можно uart использовать, если беспороводная - посмотреть как в esp rtos подключиться к модему своему и отправлять куда хочешь , даже внутри локальной сети, то есть прямо на свой комп
jcmvbkbc, а у тебя случаем нет списка книг, по которым ты обучался встроенным системам да и работе с микропроцессорами? Я вижу у тебя огромнейший опыт в этом деле, было бы интересно узнать
jcmvbkbc, да уж, я уже и релоцировал таблицу, и дефолтную локацию указывал, учел все оффсеты, глянул в objdump , все четко вызов за вызовом как надо, в GPIO пин прокинул пятерку с 7 по 9 биты, т.е. тем самым включил прерывание при высоком уровне и установил режим INPUT для него -- не работает.
Релокацию делал вот так
movi a0, __vectable_addr
wsr a0, vecbase
Может прерывания нужно как-то явно включать процессорной командой, не знаешь?
Прочитав ISA book про прерывания, понял, что они должны работать так-то по умолчанию
Borys Latysh,
"Да .... зачет за такие вопросы не поставят"
А я не и учусь по специальности "электротехника и информатика", зачеты мне некому ставить, обучаюсь сам, отсюда и вопросы. Вам какой-то дядя объяснил это на парах - вы молодец, а мне приходится искать всю информацию самому
В общем, я уже понял, что все сводится к поиску нахождения алгоритма демодуляции. Честно, я сам уже и не помню, что именно меня смутило, из-за чего я решил задать вопрос, ведь ответ довольно прост.
Я имел в виду не преобразование аналоговых данных, например, когда говоришь в микрофон, а именно аналоговый сигнал, с помощью которого мы передаем цифровые данные. То есть на компьютере A есть цифровые данные, и по беспроводной сети (то есть засчет аналогового сигнала) их передают на компьтер B, используя одну из видов модуляций (FM, AM, PM, QAM16, QAM64, и т.д.). И вопрос был в том, как принимающая сторона (компьютер B) обрабатывает этот аналоговый сигнал и достает из него цифровые данные?
Сергей Соловьев, но при этом сама ОС постоянно что-то да записывает в эти участки памяти. Как это тогда работает? ОС в таком случае либо на время выключает состояние readonly или просто игнорирует сигнал? В общем, спасибо за наводку, почитаю про MPU
Да, я тупанул. Я думал, может есть какой-то механизм на уровне железа, который предотвращает запись в ту или иную область памяти. Но такой механизм выглядит нереальным. Либо это будет что-то типа ПЗУ, либо у кого-то да должен быть доступ, а в нашем случае это ОС.
GavriKos, память = [количество адресов] x [кол-во битов в одном адресе]
Тут просто обывателя сбивает с толку 4 ГБ, хотя вроде на моей 32-битной машине 16 гб памяти.
Под 4 ГБ подразумевают именно количество адресов (2^32) - простая комбинаторика. А вот сколько физической памяти на самом деле - зависит от кол-ва битов в одном адресе
Получается, что максимальное число памяти, доступное для 32-битной системы - 32 ГБ (2 ^ 32 * 64 bits, учитвая текущие стандарты, где размер данных не превышает 64 бита)
UPD:
Епта, оказывается в большинстве нами используемхы процессорах 1 байт используется для одного адреса. То есть действительно 4гб максимум
mayton2019, твой пример обращается к материальным сущностям.
В моем примере, тебя, наверное, смутил переход от абстракции в виде "Библиотека на Си" к конкретной (т.е. материальной) железке - микроконтроллеру. Получается, мне нужно добавить пару деталей: библиотека хранится в виде электронов в конкретной железке под названием "оперативная память", результатом работы которых являются такие же электроны, но уже в другой последовательности. Эта последовательность передается по проводу в микроконтроллер, в котором тоже работают электроны, и, реагируя на мои переданые электроны, вместе образуют новые (прошивку)
Теперь, надеюсь, у тебя не будет возникать вопросов