|
MSPGCC->Проблема->Нид Хелп, Кто реально работал с MSPGCC - помогите плз |
|
|
|
Mar 4 2008, 06:47
|
Знающий
   
Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045

|
Цитата(MrYuran @ Mar 4 2008, 08:17)  Одного не могу понять: чё за хрень насовали в стартап? На мой взгляд, единственная рабочая инструкция в нём останавливает WDT, далее идёт переход на мэйн. Так какого было огород городить, хотя может я не понимаю всех тонкостей. Например, как вам такая конструкция? 110a: 3e 40 00 02 mov #512, r14 ;#0x0200 110e: 3d 40 00 02 mov #512, r13 ;#0x0200 1112: 0d 9e cmp r14, r13 ;
Какой смысл сравнивать 2 одинаковых регистра? Причём в случае неравенства выполняется другой код, не менее загадочный. Я не понимаю. В вашем случае этот код не имеет смысла, а в полноценном проекте перед переходом к main() происходит инициализация данных и стека.
|
|
|
|
|
Mar 25 2008, 08:45
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Всё вроде отлично, проект полностью портировал с ИАРа на GCC, но осталась одна такая мелочь, которую я сначала закомментировал, чтоб не мешала, а теперь вот всплыла.
КАК ВЫЧИСЛИТЬ ЛОГАРИФМ?
Библиотека math.h подключена, а вот на log() и pow() линкер ругается - чё, грит, за андефайнед?
Где взять эти функции или как сделать чтобы они работали? PS: В math.h они прописаны, с самой библиотекой чего-то не то
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Mar 25 2008, 09:00
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(MrYuran @ Mar 25 2008, 10:45)  Библиотека math.h подключена, а вот на log() и pow() линкер ругается - чё, грит, за андефайнед? math.h - это не библиотека, это заголовочный файл. В нем описывается, что "существуют такие функции, они берут такие-то аргументы и возвращают такие-то значения" чтобы компилятор мог проверить, правильные ли аргументы вы пытаетесь передать в функцию и знал, какие преобразования надо (если надо) сделать с результатом функции. Код самих функций может находиться где угодно - в других объектных файлах, в этом же файле, в библиотеках. В вашем случае надо подключить библиотеку математики libm.a
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 25 2008, 10:41
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(gotty @ Mar 25 2008, 13:23)  На этапе линковки добавте параметр -lm и получите эффект, который описал Сергей Борщ Да, я так и сделал в конце концов. И ещё -lc добавил на всякий. Правда, log и pow он опять не видит, зато видит logf и powf. Я так понял, это одно и то же, только аргументы float, а не double. Мне в общем-то без разницы , только б работало. А чё-то вот не хочет... Буду копать дальше. Давеча вон тоже глючило чё-то, пока переменные char в функции не заменил на int. В мануале по mspgcc почему-то так настоятельно рекомендуют - использовать где можно int вместо char и unsigned int.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|