motofan logo
43 страниц V « < 40 41 42 43 >        
> 

P2Kapi, Вопросы

Osta
сообщение 21.6.2008, 5:33


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(n0wheremany @ Вчера, 19:56)

ЗЫ - не знаешь не лезь.
*


n0wheremany :-) к людям относимся помягше , на мир смотрим пошишре , верно ?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 21.6.2008, 6:00


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 174
Регистрация: 31.3.2007
Из: Екатеринбург
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008


Настроение:
Второй год подряд решаю мир. Решения не найдено.



Рейтинг: 669



VlzRu,
держи две функции для стирания/прошивания, пока беды не случилось:
Код
procedure TForm1.Erase;
var
    Size: Cardinal;
    OutData:array[0..1023] of Char;
    Res:Cardinal;
    StartTime,PointTime:Cardinal;
begin
    StartTime:=GetTickCount;
    Label1.Caption:='Erasing flash memory';
    Label1.Update;
    Size:=SizeOf(OutData);
    ProgBar.Max:=1000;
    Res:=Flash_SendCmd('ERASE',nil,0,OutData,Size,100);
    while Res<>0 do
    begin
        PointTime:=(GetTickCount-StartTime) mod 2000;
        if PointTime>=1000 then PointTime:=2000-PointTime;
        ProgBar.Position:=PointTime;
        Size:=SizeOf(OutData);
        Res:=Flash_ReadData(OutData,Size,20);
        Application.ProcessMessages;
    end;
end;

function TForm1.Flash(FName: string; Base: Cardinal):integer;
var
    F:file of Byte;
    FSize,Size:Cardinal;
    FlashAddr,FlashOff:Cardinal;
    InData:array[0..$ff] of Byte;
begin
result:=0;
    Label1.Caption:='Flashing Phone';
    Label1.Update;
    ProgBar.Position:=0;
    AssignFile(F,FName);
    Reset(F);
    FlashAddr:=Base;
    FlashOff:=0;
    FSize:=FileSize(F);
    ProgBar.Max:=FSize;
    repeat
        BlockRead(F,InData,$100,Size);
        result:=result+Flash_Addr(FlashAddr);
        result:=result+Flash_Bin(InData,Size);
        Inc(FlashAddr,$100);
        Inc(FlashOff,$100);
        ProgBar.Position:=FlashOff;
        Application.ProcessMessages;
    until FlashOff>=FSize;
end;
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
n0wheremany
сообщение 21.6.2008, 7:26


Прогр@ммер
*****

Группа: Почётные мотофаны
Сообщений: 564
Регистрация: 10.9.2005
Пользователь №: 51 111
Модель телефона: E398

Рейтинг: 341



Osta

Верно конечно... Но будет как у меня более 1,5 года лежащий 398 с пробитой флэшкой... Благо умный человек позаботился ))

Цитата
procedure TForm1.Erase;

Надо читать ответ, а не просто возможные байты... ибо ERR тоже ответ. И весьма плохой.

Зы DmT, разве у тебя Flash_ReadData не стопорит прогу? до ответа?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 22.6.2008, 7:53


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 490



n0wheremany,
У Flash_ReadData (и Flash_WriteData) последний параметр - таймаут в миллисекундах. И у Flash_SendCmd, кстати, тоже wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VlzRu
сообщение 22.6.2008, 13:45


Новичок
*

Группа: Пользователи
Сообщений: 5
Регистрация: 19.6.2008
Пользователь №: 175 279
Модель телефона: V/E/*

Рейтинг: 0



Огромное спасибо n0wheremany и DmT ! Теперь я все понял.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
VlzRu
сообщение 25.6.2008, 15:38


Новичок
*

Группа: Пользователи
Сообщений: 5
Регистрация: 19.6.2008
Пользователь №: 175 279
Модель телефона: V/E/*

Рейтинг: 0



Хотя нет... не все :-)
Что, в теории, делает команда JUMP? судя по https://forum.motofan.ru/index.php?showforum=143 Flash&backup'у отправлять ее нужно после засылки лоадера, или это зависит от чего-то? На какой адрес нужно прыгать? На адрес, в котором начинается лоадер? (JUMP для Motorola == JMP для asm) ?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 25.6.2008, 19:47


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 490



VlzRu,
Для телефонов на платформе LTE нужно:

Добавлено позже (26.6.2008, 2:49):
VlzRu,
Для телефонов на платформе LTE нужно:
1) Записать лоадер по адресу 0x03fd0000
2) JUMP на 0x03fd0010
3) Если намерен что-то прошивать - стирание памяти (адреса вбиваются в лоадер)
4) Прошивание/чтение (для чтения лоадер должен это поддерживать)
5) Опционально выключение или перезапуск телефона
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 26.6.2008, 4:13


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 174
Регистрация: 31.3.2007
Из: Екатеринбург
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008


Настроение:
Второй год подряд решаю мир. Решения не найдено.



Рейтинг: 669



Цитата(VlzRu @ Вчера, 21:38)

JUMP для Motorola == JMP для asm
*


JUMP это команда лоадера
А jmp это команда ассемблера для x86
На асемблере для ARM эта команда BX

Сообщение отредактировал DmT - 26.6.2008, 20:58
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 26.6.2008, 13:08


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 490



Цитата(DmT @ Сегодня, 11:13)

На асемблере для ARM эта команда B
*


Уж если на то пошло, то BX. B умеет переходить только по фиксированному адресу, а BX - по адресу в регистре.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
david768
сообщение 21.10.2009, 8:07


Новичок
*

Группа: Начинающие
Сообщений: 1
Регистрация: 21.10.2009
Пользователь №: 208 402
Модель телефона: E398

Рейтинг: 0



Я чайник...Как установить скины???
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
P2Kapi, Вопросы · Ломаем и строим! · Forum
 

43 страниц V « < 40 41 42 43 >
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 26.4.2024, 18:24

Форум живёт: