Так вот что я накопал. Может мне теперь смогут помочь.
Вся проблемма начинается аж самой инициализации.
Первой сишной функцией которая вызывается является board_init_f она выполняется еше во флеше в ней происходит вся основная инициализация, и таймеров в том числе.
Тоесть вызывается вот такая функция.
Цитата
int timer_init(void)
{
struct s3c24x0_timers *timers = s3c24x0_get_base_timers();
ulong tmr;
/* use PWM Timer 4 because it has no output */
/* prescaler for Timer 4 is 16 */
writel(0x0f00, &timers->tcfg0);
if (timer_load_val == 0) {
/*
* for 10 ms clock period @ PCLK with 4 bit divider = 1/2
* (default) and prescaler = 16. Should be 10390
* @33.25MHz and 15625 @ 50 MHz
*/
timer_load_val = get_PCLK() / (2 * 16 * 100);
timer_clk = get_PCLK() / (2 * 16);
}
/* load value for 10 ms timeout */
lastdec = timer_load_val;
writel(timer_load_val, &timers->tcntb4);
/* auto load, manual update of timer 4 */
tmr = (readl(&timers->tcon) & ~0x0700000) | 0x0600000;
writel(tmr, &timers->tcon);
/* auto load, start timer 4 */
tmr = (tmr & ~0x0700000) | 0x0500000;
writel(tmr, &timers->tcon);
timestamp = 0;
return (0);
}
Тут надо обратить внимание на timer_load_val и на timer_clk.
Эти переменные оказываются почемуто во флеше.
Тоесть напрмер адресс переменной timer_load_val = 0x52600(флеш мапиться по нулевому адресу)
И вовремя работы программы они естественно не меняются.
А если еще и посмотреть бинарник которые прошиваю(и который создается во время сборки убута) то по адресу 0x52600 мы увидим нашу будующую переменную и притом отличную от 0.
Внимание вопрос что я не так делаю. Ведь этот код относиться не к конкретно моей плате и даже не конкретно моему процессору, и код верный.
Собственно дальше из-за этого кода все у меня и не работает. Так-как значения переменной равняется в моем случае 0x17 что по логике вобще не врно и естественно дальше все работает соверенно не так.
ЗЫ. Переменные обявленны как ,
Код
int timer_load_val = 0;
static ulong timer_clk;
Моежт это всетаки косяк. Потому как очень странно выглядит такое обявление глобальных переменных.
Сообщение отредактировал a1ien - Mar 25 2012, 20:26