--------------------------------------------- elfcheck - простая прога, которая проверяет, используются ли в эльфах (включая эльфлоадер) функции, которых нет в либе. simple tool which checks whether there are functions used in elfs (including elfloader) that are not included in library.
Q: How use elfcheck? Q: Как использовать? R: Look this page here
saveevents.elf - сохранение евентов (EVENT)
(c) den_po
---------------------------------------------
Шаблоны эльфов для IAR Некоторые полезные для разработчиков шаблоны эльфов. На данный момент имеются: 1) Пустой эльф 2) Пустой эльф со своей книгой 3) Эльф-рисовальщик на главном экране 4) Эльф для RegFile (по сути - пустой эльф, но с дополнительными входными параметрами) 5) Эльф с графическим интерфейсом - списком 6) Эльф-патч, который можно конвертировать в *.vkp при помощи elf2vkp
typedef struct { int FullVolume; int FreeVolume; int SizeCluster; int AllClusters; int AllFreeClusters; int unk5; int unk6; //0 int unk7; //0 }VOLUMESIZE;
int *mem3 = new int[8]; int *mem2 = new int[8]; GetVolumeSize(_T("/tpa"),mem3); FullVolume = mem3[0]; if(GetVolumeSize(_T("/usb"),mem2)>=0) FreeVolume = mem3[2]*(mem3[5]+mem2[5]); else FreeVolume = mem3[1]; OccupiedVolume = FullVolume-FreeVolume;
Какая-то ерунда у меня с bcfg-конфигами. При компиляции любого эльфа, использующего такие конфиги (для примера хотя бы BcfgExample) и последующем запуске эльфа на телефоне создается конфиг нулевой длины. Хотя эльфы, скомпилированные другими, создают нормальные конфиги. Возможно, какие-то особые настройки IAR нужны для нормальной компиляции эльфов с bcfg? В файле conf_loader.cpp после строчки Код:
unsigned int len=(char *)__segment_end("CONFIG_C")-(char *)__segment_begin("CONFIG_C");
я пробовал MessageBox'ом выводить len. Как и ожидалось, len было равно 0. Может, дело в этом "CONFIG_C"?
SЕ k750i SЕ
UltraShot
Developer/Moder
Регистрация: 21.5.07 Сообщений: 1729 Репутация: 1827 Откуда: Санкт-Петербург / Череповец
int *card = new int[8]; int *phone = new int[8]; GetVolumeSize((char *)_T("/card"),(VOLUMESIZE *)card); GetVolumeSize((char *)_T("/tpa"),(VOLUMESIZE *)phone); long int p = card[1]*100 /card[0]; //в надежде получить long int p2 = phone[1]*100/phone[0]; //процент свободного места MessageBox(0x6fFFFFFF,int2strID(p),0, 1 ,5000,0); MessageBox(0x6fFFFFFF,int2strID(p2),0, 1 ,5000,0);
На выходе одно сообщение содержит "3", второе "-3"(в реале на карте и телефоне свободно ~ по 20%). Что не так?
VOLUMESIZE *card = (VOLUMESIZE *)malloc(sizeof(VOLUMESIZE)); VOLUMESIZE *phone= (VOLUMESIZE *)malloc(sizeof(VOLUMESIZE)); GetVolumeSize((char *)_T("/card"),card); GetVolumeSize((char *)_T("/tpa"),phone); long int p = card->FreeVolume ; // свободное место в байтах
SE C901 [R1GA028]
SlaveMaster
Elfmaker
Регистрация: 6.5.07 Сообщений: 314 Репутация: 905 Откуда: Saint Petersburg
Да не, Жень, место в байтах он нормально отображает при вышеприведённом коде, меня интересовали только проценты, вот их как ни мучился плучить не могу.. Вот как определяется длина полосок в твоём эльфе IFMD? Тоже ведь через отношение занятого ко всему объему должно?
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.