Второй день трахаюсь с форумом Микрочипа (который .com/forum),
пытаясь выяснить простой вопрос (в смысле формулировки, а не
существа). Вместо ответа по существу получаю уроки написания
кода... Попробую тут озвучить. Вдруг кто столкнулся. https://www.microchip.com/forums/m1181805.aspx#1181999
Проблема.
1. dsPIC33CH512MP208. Два ядра 90/100 MIPS. Проект на ЧИСТОМ Ассемблере. Без .include "xc.inc"
2. Написал код Slave-ядра. Работает штатно.
3. Написал код Master-ядра (без запуска Slave). Тоже все ништяк-ништяк.
4. Пишу функцию загрузки Slave, возникает парадоксальная ситуация.
Имидж Slave находится во флеше Мастера по фиксированному адресу. Гружу из него в Slave, верифицирую - все проходит без ошибок. Но далее возникает ДВА варианта. Либо запуск Slave происходит (это отдельная функция с разблокировкой), либо нет. Это определяется количеством инструкций кода Мастера. Добавляешь в любом месте кода инструкцию - запускается Slave, еще одну добавляешь - не запускается...
Как такое может быть? Ведь имидж Slave во флеше Мастера прибит гвоздями к адресу 0x2000 (ПОСЛЕ кода Мастера) и не изменяется...
Еще одна ссылка на тему моего собеседника по обсуждаемому вопросу:
https://www.microchip.com/forums/m1176396.aspx