petrd 0 January 26 Posted January 26 (edited) · Report post В 17.07.2023 в 20:14, Canis Dirus сказал: Чтобы два раза не вставать и не плодить лишние темы. У кого-нибудь есть идея, как понимать «It should be noted that the vector table base address needs to be 1KB aligned in the QingKe V2 microprocessor» (похожее требование есть и в документации на V3, а вот в V4 — нет)? Потому что в прилагаемом коде (например этом) на это выравнивание по границе килобайта благополучно положили. Почему положили? Таблица начинается с нулевого адреса, т.е. таблица выровнена изначально. А 1 Кб потому что размер таблицы максимально может быть 256*4 = 1024 байта, как раз 1 Кб. Ситуация - таблицу решили положить за 512 байт до конца памяти, не влезет ведь. Итог, надо выравнивать по 1 Кб. Edited January 26 by petrd Quote Share this post Link to post Share on other sites More sharing options...
petrd 0 Tuesday at 07:21 AM Posted Tuesday at 07:21 AM · Report post Дополню. При переносе таблицы векторов в RAM столкнулся с тем, что компилятор назначил таблице векторов адрес 0x20000008. Но при записи этого адреса в mtvec туда записалось только 0x20000000. Вот и ответ, почему выравнивание по границе 1кБ. Т.е. таблица векторов для V003 в RAM может быть размещена только начиная с двух адресов 0x20000000 и 0x20000400. Quote Share this post Link to post Share on other sites More sharing options...
VladislavS 46 Wednesday at 06:41 AM Posted Wednesday at 06:41 AM · Report post На QingKeV4 точно ограничения нет. Вот значение mtvec у меня. Первые два вектора в таблице не задействованы и для экономии памяти она сдвинута на один вектор, а во втором векторе (по адресу 0x2000'0000 если запускать код из RAM) расположена команда "J Reset_Handler". Таблица начинается с адреса 0x1FFF'FFFC. Собственно, описание mtvec только младшие два бита к адресу таблицы не относит. В QingKeV2 описание mtvec такое же, но в тексте есть ограничение на 1К. Может копипастнули что-то не так. PS: Попробовал. На QingKeV2 mtvec действительно принимает только адреса кратные 1К. Quote Share this post Link to post Share on other sites More sharing options...