Всем доброго дня суток. Помогите кто сможет. Сам вопрос в конце, а для начала поясню предысторию, чтобы показать всю картину целиком.
Поставил я себе задачу изучить Chipcon-овский трансивер CC1101. Для этого я взял отладку "CC1101 Development Kit 433MHz" (далее - отладка). Поигрался со SmartRF Studio все понравилось.
Потом решил изучить примеры кодов под эту отладку, а точнее под МК Silabs C8051F320 (скачал с сайта Texas-а, вот код:
swrc021e.zip ( 737.21 килобайт )
Кол-во скачиваний: 401).
В качестве программатора использую Silabs ToolStick с платкой Tool Debug. Установил для нее драйвера с сайта производителя или с efo.ru - не помню.
Начал с Кеиловского проекта "link_bootloader".
Для этого предварительно установил KEIL V3.55, вылечил и установил SiC8051F_uv3, чтобы KEIL поддерживал отладку и прошивку через ToolStick. Подробнее о KEILe (может будет полезно):
IDE-Version:
µVision3 V3.55c
Toolchain: PK51 Prof. Developers Kit Version: 8.10
Toolchain Path: C:\Keil\C51\BIN\
C Compiler: C51.Exe V8.10
Assembler: AX51.Exe V3.03c
Linker/Locator: LX51.Exe V4.21
Librarian: LIBX51.Exe V4.24
Hex Converter: OHX51.Exe V1.36b
CPU DLL: S8051.DLL V3.16
Dialog DLL: DCYG.DLL V2.50
Target DLL: BIN\SiC8051F.dll V2.8.2.0
Dialog DLL: TCYG.DLL V2.47
Компильнул профиль проекта link_433_CC1100_bootloader, предварительно установив "Silabs C8051Fxxx Driver" во вкладках Debug(Settings->USB Debug Adapter 1.6.0.0) и Utilities как таргет для дебага и прошивки. А все остальное оставил как было. Ну и указалал во вкладке C51 пути к файлам(..\..\..\..\..\INC\CHIPCON\srf04;..\..\..\..\..\LIB\Chipcon\srf04\bootloader_reservation;..\..\..\..\..\LIB\Chipcon\srf04\Cul\CCxx00;..\..\..\..\..\LIB\Chipcon\srf04\Eb\CCxx00;..\..\..\..\..\LIB\Chipcon\srf04\Hal\CCxx00;..\..\..\..\..\LIB\Chipcon\srf04).
При компилляции выходит сообщение об удачном исходе:
Build target 'link_433_CC1100_bootloader'
compiling Link.c...
compiling bootloader_reservations.c...
assembling STARTUP.A51...
compiling RegSettings_Link.c...
assembling app_descriptor.a51...
linking...
Program Size: data=122.0 xdata=96 const=36 code=5308
creating hex file from ".\objects\link_433_CC1100_bootloader"...
".\objects\link_433_CC1100_bootloader" - 0 Error(s), 0 Warning(s).
Все хорошо.
Жму кнопку "дебаг". Появляется вопрос, мол, точно хотите затереть камень -> yes. Затер и даже сообщил об этом (нафига?...). Далее шьет и даже виден процесс прошивки в выскочившем окне...
Но появляется неприятное предупреждение:
"Note: USB address and data registers will not be valid until USB clock is running."
Конечно я жму Ок.
Первое что меня смутило, так это то, что в под надписью "pBootLoader" (см. рис) ничего нет, по идее там наверное должен быть код бутлоадера, чтобы можно было шить камень через USB. Но там ничего нет.
Ладно игнорирую и вывожу курсор на код в main() и далее вроде все нормально.
Но программа не работает когда в отладке ее просто запускаешь(на ЖК дисплее должен быть текст) или когда ее просто прошиваешь, нажав на кнопку Load. Даже есть отключить программатор от отладки и передернуть питание.
Вопрос: что я делаю не так?
Может нужно как-то еще настроить проект,
переписать StartUp,
установить др. драйвер или есть какая-то хитрость c ресетом,
А може дело в этом сообщениии о USB clock ... незнаю что думать вообщем.
То что дело в настройке компиляции, - это 80%. Потому что когда я шью Silabs-овской утилитой "FLASH Programming Utility" хекс-файл из примера, которой я не трогал, тогда отладка запусакется. А когда я шью той же утилитой мной сгенерированный хекс - опять молчание.
Заранее спасибо.