-
- Да ладно, не важно. Я просто ещё раз говорю, что нафиг они сделали проц, который не совместим со стандартным Си? Собственно, поэтому я его никогда и не трогал. - SciFi(29.04.2015 15:02)
- Коллеги, кто на примере кода пояснил эту несовместимость? Не дайте умереть неучем. - Evgeny_CD(29.04.2015 15:05)
- откуда тогда костыли с аттрибутом flash ? - Mahagam(29.04.2015 15:29)
- Буду благодарен, если поясните. - Evgeny_CD(29.04.2015 15:30)
- кратко, у авр указатель на рам и указатель на флеш не совсем равнозначны. доступ к _данным_ во флешке идёт через отдельную команду LPM, посему просто скормить функции указатель невозможно, функция должна знать это указатель на флеш или на раму. Mahagam(20 знак., 29.04.2015 15:38)
- Ну и чо? Полюбому, указатель и сегмент памяти определять, что она рид-онли, хотябы. Вон, расово-верный МИПС и то требует. - mse homjak(27.04.2018 18:38)
- Некропостинг, однако. Суть в том, что у фон Неймана достаточно передать в функцию указатель на объект. У гарварда нужно еще передать тип этого указателя (указывает он в пространство данных или в пространство кода, патамучта работа с этими LightElf(248 знак., 27.04.2018 22:44)
- Вам-то какая разница? Вы определили указатель на тип данных и не парьтесь, чо куда впиндюрит компилер. Бдь, я прям вспоминаю молодость и эпические срачи "Це вс АСМ". Да, в АСМ это имеет значение, какими инструкциями ковырять датые. А в Це, чего mse homjak(99 знак., 28.04.2018 09:27 - 09:44)
- Вы уже заипали с вашими гарвардами. Это отговорка для лохов. Есличо, CM3 тоже гарвард, в то же время всё там нормально с единым адресным пространством. Ящетаю, гарвард давно пора сжечь на костре. - SciFi(27.04.2018 22:47)
- В 32-х битах все сильно проще. Можно часть указателя использовать для выбора адресного пространства (что собственно и сделано в Cortex-m). 8-битнику сложнее. - LightElf(28.04.2018 00:36)
- Ага, поэтому засунули бит адреса в опкод. Гениально :-) - SciFi(28.04.2018 09:49)
- В 32-х битах все сильно проще. Можно часть указателя использовать для выбора адресного пространства (что собственно и сделано в Cortex-m). 8-битнику сложнее. - LightElf(28.04.2018 00:36)
- Некропостинг, однако. Суть в том, что у фон Неймана достаточно передать в функцию указатель на объект. У гарварда нужно еще передать тип этого указателя (указывает он в пространство данных или в пространство кода, патамучта работа с этими LightElf(248 знак., 27.04.2018 22:44)
- а IAR придумала костыль для костылей - __generic - Vit(30.04.2015 07:26)
- Не "не совсем равнозначны", а совсем не равнозначны. Чистый гарвард: есть адресное пространство команд и есть адресное пространство данных. Каковые между собой не пересекаются совсем. Адрес команды 0x1234 и адрес данных 0x1234 - абсолютно разные LightElf(228 знак., 29.04.2015 17:27)
- Спасибо! - Evgeny_CD(29.04.2015 17:37)
- Спасибо! - Evgeny_CD(29.04.2015 15:50)
- Ну и чо? Полюбому, указатель и сегмент памяти определять, что она рид-онли, хотябы. Вон, расово-верный МИПС и то требует. - mse homjak(27.04.2018 18:38)
- кратко, у авр указатель на рам и указатель на флеш не совсем равнозначны. доступ к _данным_ во флешке идёт через отдельную команду LPM, посему просто скормить функции указатель невозможно, функция должна знать это указатель на флеш или на раму. Mahagam(20 знак., 29.04.2015 15:38)
- Буду благодарен, если поясните. - Evgeny_CD(29.04.2015 15:30)
- откуда тогда костыли с аттрибутом flash ? - Mahagam(29.04.2015 15:29)
- Коллеги, кто на примере кода пояснил эту несовместимость? Не дайте умереть неучем. - Evgeny_CD(29.04.2015 15:05)
- Да ладно, не важно. Я просто ещё раз говорю, что нафиг они сделали проц, который не совместим со стандартным Си? Собственно, поэтому я его никогда и не трогал. - SciFi(29.04.2015 15:02)