перекрестный линк с вопросом от сюда -
http://electronix.ru/forum/index.php?act=S...=30#entry282417помогите пожалуйста разобраться что не верно?
прощиваю программу через программу BFloader_20 (
http://bfmodul.narod.ru/index1.htm)
я хочу от этой программы - зажечь светодиоды на PF3,PF4.
я загружаюсь с at25256, потом через программу BFloader_20 помещяю LDR файл в at45db041b и ставлю BOOTMODE="11", и CS иагнал подаю на at45db041b
все верно?
но не работает, и я не мойму в чем причина.
не могу понять где у меня проблемма:
- толи не правильно чтото в самой программе, а где не могу найти.
- толи я генерирую не корректно HEX, или LDR файлы...
- толи я не так программитрую бутовый флэш, что маловероятно, но тоже не исключено...
- толи гружусь не правильно как то, так вроде бы же для at45db041b - должно быть BOOTMODE="11"
вот она, сама тестовая программулина:
вот файл сборки и генерерации HEX,LDR файлов
Код
# Makefile для сборки модулей и компиляции программ для Blackfin
.....
SRC = dkv.c
BINARY = dkv
SRCS = $(wildcard *.c)
HDRS = $(wildcard *.h)
OBJS = $(SRCS:.c=.o)
.PHONY: clean
default:
# Компиляция программы
# ASM
# $(CCbf) $(FLAGS) -S dkv.c
# ELF
$(CCbf) $(FLAGS) -o $(BINARY) $(SRC)
# Удаление временных файлов
rm -f *.elf *.gdb *.o *.mod.c
# генерация - HEX, LDR
$(OBJCOPY) --strip-unneeded -I binary -O ihex $(BINARY) $(BINARY).hex
ls --color $(BINARY) $(BINARY).hex
dkv: dkv.o
$(OBJS): $(HDRS)
....
но это я получил HEX, а как же мне получить LDR ?
вот С код тестовой программы:
Код
#include <stdio.h>
#define BF532_PROJECT
#ifdef BF532_PROJECT
#include "cdefBF532.h"
#else
// #include <cdefBF533.h>
#endif
//--------------------------------------------------------------------------//
void leds_blink(void);
void leds_init(void);
void Init_Flags(void);
void Init_Timers(void);
void Init_EBIU(void);
void Init_Interrupts(void);
//--------------------------------------------------------------------------//
int main (void){
Init_Flags();
Init_Timers();
Init_EBIU();
while(1){
leds_blink();
}
return 0;
}
//--------------------------------------------------------------------------//
void leds_init(void){
*pFIO_DIR = 0x001F; // Direction PF0..4 as Output
}
//--------------------------------------------------------------------------//
void leds_blink(void){
*pFIO_FLAG_C=0xFF;
*pFIO_FLAG_S=0xFF;
}
//--------------------------------------------------------------------------//
// Function: ининциализауия_флагов
// Description: рассматриваемая функция инициализирует флаг PF8 как вход
// и описывает чувствительность по уровню к прерыванию по входу
// кнопка платы SW7 подсоеденена к восьмому флагу
//--------------------------------------------------------------------------//
void Init_Flags(void)
{
*pFIO_INEN = 0x0000; // разрешение буфферизации входного флага 8
*pFIO_DIR = 0x001F; // все флаги входные
*pFIO_EDGE = 0x0000; // флаг 8 демаскирует прерывание и срабатывает по уровню
*pFIO_MASKA_D = 0x0000; // разрешение прерывания PF8
}
//--------------------------------------------------------------------------//
// Function: Инициализация таймера0 //
// Description: функция инициализирует таймер0 в режиме ШИМ //
// It is used as reference for the 'shift-clock'. //
//--------------------------------------------------------------------------//
void Init_Timers(void)
{
*pTIMER0_CONFIG = 0x0019;
*pTIMER0_PERIOD = 0x00800000; //
*pTIMER0_WIDTH = 0x00400000; //
*pTIMER_ENABLE = 0; //0x0001; // разрешение работы нулевого таймера
}
//-------------------------------------------------------------------------------------//
// Function: Init_EBIU //
// //
// Parameters: None //
// //
// Return: None //
// //
// Description: Рассматриваемая функция осуществляет инициализацию и разрешение работы //
// ассинхронных банков памяти для External Bus Interface Unit (EBIU) //
// и которая разрешает доступ к Flash A //
//-------------------------------------------------------------------------------------//
void Init_EBIU(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0x7bb07bb0;
*pEBIU_AMGCTL = 0x000f;
}
в общем - помогите разобраться пожалуйста.
заранее большое человеческое спасибо всем откликнувшимся
.