zth_gyj的个人空间 https://bbs.21ic.com/?1515268 [收藏] [复制] [RSS]

日志

[原创]SylixOS的BSP开发实例之S3C2416 【第二篇】内存映射与初始布局 ...

已有 380 次阅读2015-7-12 16:46 |系统分类:兴趣爱好| 开发

  在SylixOS的S3C2416的BSP包中有“SylixOS/bsp/bspMap.h”文件,此文件是操作系统内存布局设置与初始映射配置,在文件的开始有内存分配的描述,描述如下图。

  其中 MMU 页面标识可以在 SylixOS 的 BASE 工程中 “SylixOS/kernel/vmm/pageTable.h” 中获取到,具体参数描述如下图。

/*********************************************************************************************************

  physical memory zone

*********************************************************************************************************/

#ifdef  __BSPINIT_MAIN_FILE

LW_VMM_ZONE_DESC    _G_zonedescGlobal[] = {

    {0x31800000, 0x01400000, LW_ZONE_ATTR_DMA},                         /*  均可被 DMA 使用             */

    {0x32C00000, 0x01400000, LW_ZONE_ATTR_DMA},

};

/*********************************************************************************************************

  初始化内存类型与布局 (VMM 管理区的内存不需要在全局初始化表中初始化)

*********************************************************************************************************/

LW_MMU_GLOBAL_DESC  _G_globaldescMap[] = {

#ifdef __BOOT_INRAM

    /*

     *  ARM except table

     */

    {                                                                   /*  中断向量表                  */

        0x00000000,                                                     /*  ARM except table            */

        0x30000000,                                                     /*  RAM except table            */

        LW_CFG_VMM_PAGE_SIZE,                                           /*  one page size               */

        (LW_VMM_FLAG_EXEC)                                              /*  文字池类型                  */

    },

    /*

     *  IROM area

     */

    {

        (0x00000000 + LW_CFG_VMM_PAGE_SIZE),                            /*  flash 剩下的空间直接映射    */

        (0x00000000 + LW_CFG_VMM_PAGE_SIZE),

        ((8 * LW_CFG_KB_SIZE) - LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_EXEC)                                              /*  文字池类型                  */

    },

#else                                                                   /*  __DEBUG_IN_FLASH            */

    /*

     *  IROM area

     */

    {

        (0x00000000),                                                   /*  flash 直接映射              */

        (0x00000000),

        (8 * LW_CFG_KB_SIZE),

        (LW_VMM_FLAG_EXEC)                                              /*  文字池类型                  */

    },

#endif                                                                  /*  __DEBUG_IN_RAM              */

    /*

     *  kernel space

     */

    {                                                                   /*  nSCS0 - SDRAM 6MByte        */

        (0x30000000),

        (0x30000000),

        (6 * 1024 * 1024),                                              /*  SylixOS Kernel Text         */

        (LW_VMM_FLAG_EXEC | LW_VMM_FLAG_RDWR)                           /*  此段可修改, 方便调试        */

    },

    {                                                                   /*  nSCS0 - SDRAM 18MByte       */

        (0x30600000),

        (0x30600000),

        (18 * 1024 * 1024),                                             /*  SylixOS Kernel Memory       */

        (LW_VMM_FLAG_RDWR)                                              /*  状态属性 CB                 */

    },

    {                                                                       /*  IRAM - SRAM 8KB                  */

                0x40000000,

                0x40000000,

                (8 * LW_CFG_KB_SIZE),

                (LW_VMM_FLAG_EXEC | LW_VMM_FLAG_RDWR)

    },

    {                                                                   /*  SDRAM                                    */

        0x48000000,

        0x48000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  SDRAM                                    */

        0x48800000,

        0x48800000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  USB Host Controller         */

        0x49000000,

        0x49000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  USB Device Controller       */

        0x49800000,

        0x49800000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  Interrupt Controller        */

        0x4A000000,

        0x4A000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  HS-MMC1 Controller          */

        0x4A800000,

        0x4A800000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  HS-MMC0 Controller          */

        0x4AC00000,

        0x4AC00000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  DMA 0 - 5 Controller              */

        0x4B000000,

        0x4B000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  System Controller                 */

        0x4C000000,

        0x4C000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  LCD Controller              */

        0x4C800000,

        0x4C800000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  2D Controller                      */

        0x4D408000,

        0x4D408000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  NAND Flash Controller       */

        0x4E000000,

        0x4E000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  MATRIX & EBI                */

        0x4E800000,

        0x4E800000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  Memory Controllers ( SSMC ) */

        0x4F000000,

        0x4F000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  UART0 Controller            */

        0x50000000,

        0x50000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  UART1 Controller            */

        0x50004000,

        0x50004000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  UART2 Controller            */

        0x50008000,

        0x50008000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  UART3 Controller            */

        0x5000C000,

        0x5000C000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  PWM Timer Controller        */

        0x51000000,

        0x51000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  HSSPI(SPI Channel 0)                   */

        0x52000000,

        0x52000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  Watchdog Timer Controller          */

        0x53000000,

        0x53000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  IIC Controller              */

        0x54000000,

        0x54000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  IIS Multi Audio Interface          */

        0x55000000,

        0x55000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  I/O Port Controller                */

        0x56000000,

        0x56000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  RTC Controller                     */

        0x57000000,

        0x57000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  A/D Converter                    */

        0x58000000,

        0x58000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  AC97 Audio-CODEC Interface         */

        0x5B000000,

        0x5B000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  PCM Audio Interface                    */

        0x5C000000,

        0x5C000000,

        (LW_CFG_VMM_PAGE_SIZE),

        (LW_VMM_FLAG_DMA)                                               /*  状态属性 NCNB               */

    },

    {                                                                   /*  结束                        */

        0,

        0,

        0,

        0

    }

};

#endif                                                                  /*  __BSPINIT_MAIN_FILE         */


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)