|
адреса не выделенной памяти |
|
|
|
 |
Ответов
|
Jan 22 2015, 14:42
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
ПИПЕЦ!!!!! просото пипец!!!
вы что нибудь про шины адреса знаете? если у вас шина 2 бита и программа занимает адреса 0, 1, 2, 3
то запись в адрес 4, 5, 6, 7 - это запись в 3 битную шину 4 = 100 5 = 101 6 = 110 7 = 111 , а теперь представьте что это 3 бита выставлдяются на 2 битной шине, что будет, откинеться старший бит и что убдет? 100 = 00 101 = 01 110 = 10 111 = 11 понято что стало? 0 1 2 3
когда у вас что-то за пределами РАМ для ниос, это что-то ограничено разрядностью шины адреса, и запись туда, это запись в младшие адреса.
Нельзя так делать, нельзя писать туда, куда надеетесь программа не дотянется! Для этого есть линкеры, можно выделить область памяти, регион, запретить линкеру туда лезть, и использовать для своих нужд, зная что там точно не будет программы, но только так! никак иначе...
Можно взять большой массив выделить 1000 элементов, и по указателю обращаться в него как в память, и знать что это не загадиться, а так как вы решили эту проблемму - это ПИПЕЦ!!!!
|
|
|
|
|
Jan 22 2015, 18:09
|
Местный
  
Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695

|
Цитата(Golikov A. @ Jan 22 2015, 17:42)  ПИПЕЦ!!!!! просото пипец!!!
вы что нибудь про шины адреса знаете? если у вас шина 2 бита и программа занимает адреса 0, 1, 2, 3
то запись в адрес 4, 5, 6, 7 - это запись в 3 битную шину 4 = 100 5 = 101 6 = 110 7 = 111 , а теперь представьте что это 3 бита выставлдяются на 2 битной шине, что будет, откинеться старший бит и что убдет? 100 = 00 101 = 01 110 = 10 111 = 11 понято что стало? 0 1 2 3
когда у вас что-то за пределами РАМ для ниос, это что-то ограничено разрядностью шины адреса, и запись туда, это запись в младшие адреса.
Нельзя так делать, нельзя писать туда, куда надеетесь программа не дотянется! Для этого есть линкеры, можно выделить область памяти, регион, запретить линкеру туда лезть, и использовать для своих нужд, зная что там точно не будет программы, но только так! никак иначе...
Можно взять большой массив выделить 1000 элементов, и по указателю обращаться в него как в память, и знать что это не загадиться, а так как вы решили эту проблемму - это ПИПЕЦ!!!! Спасибо за красочное описание... меня не хватило на это в 6 сообщении...
|
|
|
|
Сообщений в этой теме
RLC адреса не выделенной памяти Jan 15 2015, 07:39 RLC решил проблему. дело было в том что я создавал мас... Jan 15 2015, 12:43 Alex77 Цитата(RLC @ Jan 15 2015, 15:43) решил пр... Jan 15 2015, 13:21 WitFed У Альтеры запись в "мусорные" недопустим... Jan 16 2015, 11:49 RLC Цитата(WitFed @ Jan 16 2015, 14:49) У Аль... Jan 16 2015, 12:44  Alex77 Цитата(RLC @ Jan 16 2015, 15:44) Ну вот я... Jan 16 2015, 13:47 Golikov A. Да чувствуется некое непонимание%)
Цитатая каждый ... Jan 16 2015, 15:56 RLC 1)
Код writeBytes(alt_u8 array[], alt_... Jan 20 2015, 07:45 Golikov A. MMU - MPU на вас нету.
сохраняются данные туда же ... Jan 20 2015, 08:47 RLC Golikov A., спасибо за объяснение. Когда я пишу по... Jan 22 2015, 11:39 RLC То что Линкером я оградил память это ежу понятно. ... Jan 23 2015, 06:24
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|