娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

ram_nor.c源碼:

//參考: drivers\mtd\chips\map_ram.c 

#include "linux/module.h"

#include "linux/types.h"

#include "linux/kernel.h"

#include "linux/sched.h"

#include "linux/init.h"

#include "asm/io.h"

#include "asm/byteorder.h"

#include "linux/errno.h"

#include "linux/slab.h"

#include "linux/delay.h"

#include "linux/interrupt.h"

#include "linux/reboot.h"

#include "linux/bitmap.h"

#include "linux/mtd/xip.h"

#include "linux/mtd/map.h"

#include "linux/mtd/mtd.h"

#include "linux/mtd/compatmac.h"

#include "linux/mtd/cfi.h"

#define RAM_BLOCK_SIZE (512*1024)

static unsigned char *ramnor_buf;

static struct mtd_info *ram_nor_mtd;

static int ram_nor_erase(struct mtd_info *mtd, struct erase_info *instr)

{

    int i;

    unsigned char *buf = ramnor_buf + instr->addr;

    static int cnt = 0;

    printk("%s : %d\n", __FUNCTION__, cnt++);

    

    for (i = 0; i < instr->len; i++)

    {

        buf[i] = 0xff;

    }

    

    instr->state = MTD_ERASE_DONE;

    mtd_erase_callback(instr);

    return 0;

}

static int ram_nor_read(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf)

{

    static int cnt = 0;

    printk("%s : %d\n", __FUNCTION__, cnt++);

    printk("thread: pid = %d, name = %s\n", current->pid, current->comm);

    memcpy(buf, ramnor_buf+from, len);

    *retlen = len;

    return 0;

}

static int ram_nor_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf)

{

    static int cnt = 0;

    printk("%s : %d\n", __FUNCTION__, cnt++);

    memcpy(ramnor_buf+to, buf, len);

    *retlen = len;

    return 0;    

}

static void ram_nor_sync_nop(struct mtd_info *mtd)

{

}

static int ram_nor_init(void)

{

    ramnor_buf = kmalloc(RAM_BLOCK_SIZE, GFP_KERNEL);

    memset(ramnor_buf, 0xff, RAM_BLOCK_SIZE);

    // alloc/setup mtd_info 

    ram_nor_mtd = kzalloc(sizeof(*ram_nor_mtd), GFP_KERNEL);;

    ram_nor_mtd->type = MTD_NORFLASH;

    // Fill in the default mtd operations 

    ram_nor_mtd->erase   = ram_nor_erase;

    ram_nor_mtd->read    = ram_nor_read;

    ram_nor_mtd->write   = ram_nor_write;

    ram_nor_mtd->name    = "ram_nor";

    ram_nor_mtd->size    = RAM_BLOCK_SIZE;

    ram_nor_mtd->sync    = ram_nor_sync_nop;

    ram_nor_mtd->flags   = MTD_CAP_RAM;

    ram_nor_mtd->writesize = 1;

    ram_nor_mtd->erasesize = 512;

    add_mtd_device(ram_nor_mtd); // add_mtd_partitions

    

    return 0;

}

static void ram_nor_exit(void)

{

    del_mtd_device(ram_nor_mtd);

    kfree(ram_nor_mtd);

    kfree(ramnor_buf);

}

module_init(ram_nor_init);

module_exit(ram_nor_exit);

MODULE_LICENSE("GPL");

=====================================================================

Makefile文件:

all:

    make -C /media/sda8/wei/linux-2.6.28_smdk6410 M=`pwd` modules

clean:

    make -C /media/sda8/wei/linux-2.6.28_smdk6410 M=`pwd` clean

obj-m += ram_nor.o

=====================================================================

測試詳情可以參考:“JZ2440之NOR FLASH驅動程序


關鍵字:OK6410  塊設備  驅動內存  模擬nor_flash 引用地址:OK6410塊設備驅動內存模擬nor_flash

上一篇:OK6410默認u-boot啟動參數
下一篇:OK6410塊設備驅動之用內存模擬磁盤

推薦閱讀

傳統上,創建可連接到云端的應用需要占用大量的時間和資源供嵌入式應用設計師開發通信協議、安全和硬件兼容性等方面的必要專業技術。開發人員通常利用大型的軟件框架和實時操作系統(RTOS)來克服這些困難,但又導致開發時間、工作量、成本和安全漏洞增加等問題。為了擴大與 Google Cloud的合作,美國微芯科技公司(Microchip Technology Inc. )推出...
現在PCIe 3.0通道的M.2 SSD將讀寫速度提升到3000M/S,你以為這就是SSD的上限嗎?紫光SSD再一次刷新你對速度的認知,下面這張圖是最新曝光的紫光SSD工程樣品,容量為1TB。可以看出是M.2接口的SSD,用的是群聯主控芯片,其他細節不得而知。可以看到在AS SSD Benchmark中,這款紫光SSD讀取速度為超過了4000M/S,寫入速度超過了3700M/S。在CrystalDiskMark...
一直以來,vivo的智能手機都很受年輕消費群體的歡迎,其中的vivo Y系列產品憑借時尚的外觀和較高的性價比贏得了不少年輕人的青睞。近日,手機中國從vivo官方了解到,vivo Y73s已正式發布,新機采用了7nm制程芯片,外觀上延續了Y系列極簡、時尚的特點,目前只提供8GB+128GB版本,售1998元。外觀設計方面,vivo Y73s厚7.73mm,重171.3g,機身的各處細節都...
三分頻音箱的制作揚聲器的選擇在三分頻音箱的制作中,揚聲器的選擇顯得至關重要。我們一般將揚聲器分為高音、中音和低音三大類。他們都有著各自的工作范圍。在我們音箱的制作中,我們盡量把功率降低,這樣耗電也就更少。因此在揚聲器的選擇中,我們也盡量選擇功率低一點的作為我們的原器件。分頻器的參數及其制做在中音范圍時,對同樣振幅的輸入信號電壓來...

史海拾趣

問答坊 | AI 解惑

降低FPGA功耗的設計技巧

使用這些設計技巧和ISE功能分析工具來控制功耗    新一代 FPGA的速度變得越來越快,密度變得越來越高,邏輯資源也越來越多。那么如何才能確保功耗不隨這些一起增加呢?很多設計抉擇可以影響系統的功耗,這些抉擇包括從顯見的器件選擇到細小的基 ...…

查看全部問答∨

兼職pcb設計

本人在一家研發公司擔任Pcb layout工程師。 具有多年的電路設計和PCB設計經驗,能獨立處理工作,有多層板和高密度板的設計經驗,有著電子專業水平和硬件設計能力,設計過單面,雙面,4層,6層.8層和多層板。 熟悉PCB生產加工工藝和PCB裝配精度要求 ...…

查看全部問答∨

單片機keil c語言入門

本帖最后由 paulhyde 于 2014-9-15 09:10 編輯 RT  …

查看全部問答∨

電源設計技巧有沒有比較實用的公式?

在書本上有許多電源設計公式,有點糊涂,請各位指教。…

查看全部問答∨

變量中一個符號的疑問

typedef struct {     PhysicalAddress bufY;     PhysicalAddress bufCb;     PhysicalAddress bufCr; } FrameBuffer; static  FrameBuffer*  pAvailableFrameBuf; static    ...…

查看全部問答∨

請教各位一個signed int相加的問題

例如有8個signed int相加,因為結果不會大于0xfff但可能大于0xff所以用三個字節來存放計算結果, 現在就有一個麻煩了,三個字節的結果我怎么知道它是正的還是負的?…

查看全部問答∨

請大家推薦一款好用的CDMA模塊

急求一款好用的CDMA模塊,請大家推薦,真的很急,呵呵...如果您有時間的話請高抬貴手指,推薦推薦!! 該模塊主要是用來做數據傳輸的,做車載的GPS系統,所以要滿足以下要求: 1、內置TCP/IP、PPP協議棧。 2、可以打電話。 3、支持PDU格式的短信 ...…

查看全部問答∨

請教STM32初始化延時問題

請問STM32初始化告訴晶振判斷穩定后完,I/O,TIM,USART初始化后, 進入應用前時候要不要加入delay? 我測得的現象是這樣的, 上電! _BSP_IntInit(); _RCC_DeInit(); 。。。。。。。。。 。。。。。。。 _RCC_SYSCLKConfig(RCC_SYSCLKS ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 宜兰县| 红原县| 上虞市| 呼和浩特市| 咸宁市| 射阳县| 古丈县| 葵青区| 克东县| 莱州市| 宜州市| 安多县| 博野县| 鄂托克前旗| 赣榆县| 祁门县| 华安县| 泰安市| 利津县| 卢氏县| 成武县| 西平县| 盱眙县| 密云县| 买车| 祁连县| 蓝田县| 攀枝花市| 萨迦县| 泾阳县| 梁山县| 保定市| 克拉玛依市| 夏河县| 屏山县| 安化县| 尤溪县| 定兴县| 县级市| 叙永县| 醴陵市|