ÒÆÖ²LinuxÄں˵½norflash

2026/4/23 3:23:29

},

/*2: Rootfs(jffs2): 0x240000-0x7f0000 0x5b0000=5824KB=5.6875MB*/ {

.name = ¡°Rootfs(jffs2)¡±, .size = 0x5b0000, .offset = 0x240000, },

/*3: U-Boot Parameters: 0x7f0000-0x800000 0x10000=64KB*/ {.name = ¡°Parameter¡±, .size = 0x010000, .offset = 0x7f0000, }, };

//static const char *probes[] = { ¡°RedBoot¡±, ¡°cmdlinepart¡±, NULL };

static const char *probes[] = { NULL }; #endif

static int mtd_parts_nb = 0;

static struct mtd_partition *mtd_parts = 0; int __init init_s3c2440nor(void) {

static const char *rom_probe_types[] = PROBETYPES; const char **type; const char *part_type = 0;

printk(KERN_NOTICE MSG_PREFIX ¡°0xx at 0xxn¡±, WINDOW_SIZE, WINDOW_ADDR);

s3c2440nor_map.virt = ioremap(WINDOW_ADDR, WINDOW_SIZE);

if (!s3c2440nor_map.virt) {

printk(MSG_PREFIX ¡°failed to ioremapn¡±); return -EIO; }

simple_map_init(&s3c2440nor_map); mymtd = 0;

type = rom_probe_types; for(; !mymtd && *type; type++) {

mymtd = do_map_probe(*type, &s3c2440nor_map); flash_debug(¡°func:%s[%d] mymtd:%x type:%sn¡±, __func__, __LINE__, mymtd, *type); }

if (mymtd) {

mymtd->owner = THIS_MODULE;

#ifdef CONFIG_MTD_PARTITIONS

mtd_parts_nb = parse_mtd_partitions(mymtd, probes, &mtd_parts, MTDID);

if (mtd_parts_nb > 0) part_type = ¡°detected¡±;

if (mtd_parts_nb == 0){ mtd_parts = static_partitions;

mtd_parts_nb = ARRAY_SIZE(static_partitions); part_type = ¡°static¡±; }

#endif add_mtd_device(mymtd);

if (mtd_parts_nb == 0)

printk(KERN_NOTICE MSG_PREFIX ¡°no partition info availablen¡±); else{

printk(KERN_NOTICE MSG_PREFIX

¡°using %s partition definitionn¡±, part_type); add_mtd_partitions(mymtd, mtd_parts, mtd_parts_nb); }

return 0; }

iounmap((void *)s3c2440nor_map.virt);

return -ENXIO; }

static void __exit cleanup_s3c2440nor(void) {

if (mymtd) {

del_mtd_device(mymtd); map_destroy(mymtd); }

if (s3c2440nor_map.virt) {

iounmap((void *)s3c2440nor_map.virt); s3c2440nor_map.virt = 0; } }

module_init(init_s3c2440nor); module_exit(cleanup_s3c2440nor); MODULE_LICENSE(¡°GPL¡±);

MODULE_AUTHOR(¡°GengYaoJun ¡°);

MODULE_DESCRIPTION(¡°Generic configurable MTD map driver¡±);


ÒÆÖ²LinuxÄں˵½norflash.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ
ËÑË÷¸ü¶à¹ØÓÚ£º ÒÆÖ²LinuxÄں˵½norflash µÄÎĵµ
Ïà¹ØÍÆ¼ö
Ïà¹ØÔĶÁ
¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩

ÏÂÔØ±¾ÎĵµÐèÒªÖ§¸¶ 10 Ôª

Ö§¸¶·½Ê½£º

¿ªÍ¨VIP°üÔ»áÔ± ÌØ¼Û£º29Ôª/ÔÂ

×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºxuecool-com QQ£º370150219