ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
86997 Топик полностью
Gamma SPb (19.04.2007 12:52, просмотров: 1) ответил Sergey Pinigin на про последний тезис можно поподробнее, что-то суть не уловил.
да, кривовато написал, объясняю 1. инициализация стека для разных платформ может сильно отличаться. Стек может расти вверх, а может вниз. У ARM-а адрес возврата сохраняется в LR, а не в стеке, а других может и в стеке сохраняться. Есть в TNKernel такая функция tn_task_exit(), которая, в частности, переинициализирует стек убиваемой задачи (находясь при этом в контексте этой задачи!!). Для ARM все в порядке, а если адрес возврата находится в стеке........ 2. под стандартными типами имел в виду unsigned int, unsigned long и т. п. Обычно их переопределяют, чтобы проще было портировать на другую архитектуру. Тут же, если портируется например на 16-битник, у которого int - 16-бит (в отличие от ARM-а, у которого для всех компилеров int -32 бита) надо думать, хватит ли 16 вместо 32х. Подскажу - хватит везде, кроме маски приоритетов. Хотя и там можно 16-бит оставить - ну будет тогда не 32 а 16 приоритетов. 3. Забыл еще сказать - проблемы могут быть с прерываниями. В ARM-е все просто, а если система прерываний многовекторная и многоприоритетная...