Вопрос любителям и профессионалам MSPGCC. Решил перейти с asm на C, но груз старых привычек тянет вниз или назад?
Нужно разместить во флеш памяти программ строку, в конкретном случае строки дескрипторов USB.
На asm делается просто: rseg CODE Prod_id: db Dev_Desc-Prod_id db 03 ; bDescriptorType dw 'U','S','B','-','E','P','P',' ' dw 'C','o','n','v','e','r','t','e','r' отлично компилируется и работает. Нашел пример скачанный из сайта Philips В начале обьявляют структуру: typedef struct _USB_STRING_PRODUCT_DESCRIPTOR { INT8 bLength; INT8 bDescriptorType; INT8 Product[30]; } USB_STRING_PRODUCT_DESCRIPTOR,*PUSB_STRING_PRODUCT_DESCRIPTOR; За тем собственно наполняют ее: code USB_STRING_PRODUCT_DESCRIPTOR strProduct = { sizeof(USB_STRING_PRODUCT_DESCRIPTOR), USB_STRING_DESCRIPTOR_TYPE, { 'U', 0, 'S', 0, 'B', 0, '-', 0, 'I', 0, 'D', 0, 'E', 0, ' ', 0, 'A', 0, 'd', 0, 'a', 0, 'p', 0, 't', 0, 'e', 0, 'r', 0} }; Заменил "code" на "const" , компилируется, но вместо обьявленных ранее INT8 резервирует 2 байта под каждый символ. Пришлось принудительно объявить приведение типов: const USB_STRING_PRODUCT_DESCRIPTOR strProduct = { (INT8)sizeof(USB_STRING_PRODUCT_DESCRIPTOR), (INT8)USB_STRING_DESCRIPTOR_TYPE, { (INT16) 'U','S','B','-','I','D','E',' ', \ 'A','d','a','p', \'t','e','r' } }; Но в листинге нет этих строк, только в сгенерированом HEX и BIN.Собственно вопрос: Как "красиво" объявить строки в памяти программ и увидеть их в листинге в среде MSP GCC? Спасибо за поддержку и отсутствие флейма :-)))