ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 апреля
341952 Топик полностью
fk0, легенда (20.07.2012 10:24, просмотров: 212) ответил Make_Pic на Без особых напрягов переносил ПО с HT на ССS, более того, библиотека у CCS имеет больше функций для поддержки внутренней и внешней периферии. Например, хотел использовать свою функцию вывода на LCD, но решил подключить штатную и она меня вполне
Нигде не указано, в чём именно заключаются расхождения с ANSI-C. Есть таблица, но там больше библиотечные функции. Будет ли работать обычный C-код. Ведь по сути это не C, а какой-то свой похожий язык. А сколько аккуратно подложенных граблей в ANSI-C в разных местах уже известно -- через-чур. Не понял также, поддерживает ли компилятор размещение констант в ROM. Если их много. Нужен ли для этого специальный тип даннных, или const void* может указывать и на ROM и на RAM. С библиотекой тоже. Microchip заявляет мол ansi compilant. А сходу с новым C30 ничего не работает, сваливается на free(NULL). Это проблема в новой библиотеке. А у hitech-C была точно такая же проблема в самом компиляторе, где (const void*)NULL != (void*)NULL (из-за 20 бита определяющего принадлежность к ROM, на MCU с > 64КБайт ПЗУ). Если, например, в CSS действительно sizeof(int)==1 (а об этом пишется только у них на форуме и больше нигде), то очевидно, половина программ сходу не заработает, даже если и переопределить свои типы (некоторые выражения будут вычисляться некорректно). Потом, раньше там была какая-то чертовщина с тем, что является единицей компиляции. Я из современной документации так и не понял, если ли понятие программного модуля (с ограниченной областью видимости для static объектов), или через #include всё собирают в один модуль. Может ещё какие-то тонкости, о которых я сходу не додумаюсь. И простые программы вроде hello world действительно работают, а в сколько-нибудь больших может начинается масса оговорок, что можно, что нельзя, что нужно делать иначе. Ведь неспроста в документации ничего про несовместимость не говорится явно. У Hitech, например, был раздел в документации, где описывались ряд особенностей их компилятора. А тут документация больше похожа на учебник для школьников. Может и назначение CSS такое же, учебное. Есть же MicroC, который тоже не совсем, или совсем не C.
[ZX]