U-boot和Linux下对内存的读写

    技术2023-08-16  105

    在U-boot下可以通过md和mw命令操作DDR内存,具体用法如下:

    mw命令格式:                                                                                                                            mw - memory write (fill)                                                                                                                                                                          Usage:                                                                                                                                       mw [.b, .w, .l] address value [count]

    写数据到DDR中:

            mw.b 0x20000000 0x12                 //数据长度为8位

            mw.w 0x20000000 0x1234            //数据长度为16位

            mw.l 0x20000000 0x12345678      //数据长度为32位

     

    md命令格式:

            md - memory display                                                                                                                          Usage:                                                                                                                                       md [.b, .w, .l] address [# of objects]  

    从DDR中读取数据:

            md.b 0x20000000 0x4                 //数据长度为8位,读取4个数据

            md.w 0x20000000 0x4                //数据长度为16位,读取4个数据

            md.l 0x20000000 0x4                  //数据长度为32位,读取4个数据

     

    在Linux下可以通过devmem命令操作DDR内存,具体用法如下:

    devmem命令格式:

            Usage: devmem ADDRESS [WIDTH [VALUE]]                                                                                                                                 Read/write from physical address

            ADDRESS Address to act upon                                                                                                          WIDTH   Width (8/16/...)                                                                                                             VALUE   Data to be written 

    写数据到DDR中:

            devmem 0x20000000 8 0x12                  //数据长度为8位

            devmem 0x20000000 16 0x1234            //数据长度为16位

            devmem 0x20000000 32 0x12345678    //数据长度为32位

    从DDR中读取数据:

            devmem 0x20000000 8                           //数据长度为8位

            devmem 0x20000000 16                         //数据长度为16位

            devmem 0x20000000 32                         //数据长度为32位

    Processed: 0.010, SQL: 10