1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/battlerry-own-boot

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
main.c 1.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
lijie Отправлено 17.01.2014 12:31 331ea8c
#include "s5pv210.h"
#include "nand.h"
#include "setup.h"
char *strcpy(char *dest, const char *src)
{
int i = 0;
const char *ptr = src;
while(ptr[i]) {
dest[i] = ptr[i];
i++;
}
return dest;
}
int strlen(char *str)
{
int len = 0;
while(str[len++]);
return len;
}
void param_set(struct tag *params)
{
char *p = "root=/dev/mtdblock4 rootfstype=yaffs2 init=/linuxrc console=ttySAC0,115200";
params->hdr.tag = ATAG_CORE;
params->hdr.size = tag_size (tag_core);//字节数除以4也就是4字节对齐
params->u.core.flags = 0;
params->u.core.pagesize = 0;
params->u.core.rootdev = 0;
params = tag_next (params);
params->hdr.tag = ATAG_MEM;
params->hdr.size = tag_size (tag_mem32);//(struct tag_header)+(struct tag_mem32)
params->u.mem.start = 0x30000000;
params->u.mem.size = 0x10000000;
params = tag_next (params);
params->hdr.tag = ATAG_MEM;
params->hdr.size = tag_size (tag_mem32);//(struct tag_header)+(struct tag_mem32)
params->u.mem.start = 0x40000000;
params->u.mem.size = 0x10000000;
params = tag_next (params);
params->hdr.tag = ATAG_CMDLINE;
//(struct tag_header)+字符长度+结束符+u
params->hdr.size = (sizeof (struct tag_header) + strlen (p) + 1 + 4) >> 2;
strcpy (params->u.cmdline.cmdline, p);
params = tag_next (params);
params->hdr.tag = ATAG_NONE;
params->hdr.size = 0;
}
int main(void)
{
void (*theKernel)(int zero, int arch, uint params);
struct tag *params_start;
params_start = (struct tag *)(0x30000000 +0x100);
param_set(params_start);
copy_from_nand(1);
theKernel = (void (*)(int, int, uint))0x30008000;
theKernel (0, 0x998, 0x30000100);
return 0;
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/battlerry-own-boot.git
git@api.gitlife.ru:oschina-mirror/battlerry-own-boot.git
oschina-mirror
battlerry-own-boot
battlerry-own-boot
master