pmon 支持俩种接口类型的 nand flash,一个是 nand 控制器接口,一个是 spi 接口。龙芯核心板上板载了一个 nand 控制器接口的 flash。
1 配置 pmon
首先我们需要在 pmon 里面添加对 nand 的支持,那么我们都要配置哪些内容呢?这个要从 pmon 的启动流程入手,pmon 在启动的时候是在 Targets/LS2K/ls2k/tgt_machdep.c 里调用 ls2k_nand_init()函数对 nand进行初始化的,如下图所示:


从上图可知,如果我们要调用 ls2k_nand_init()函数,就需要定义宏定义 NNADN 和 CONFIG_LS2K_NAND,其中 NNADN 的值在 Targets/LS2K/compile/ls2k/m25p80.h 中定义为 1,如下图所示:

所以我们只需要在 Targets/LS2K/conf/ls2k 文件中添加代码 option CONFIG_LS2K_NAND 即可,这里我们添加到第 269 行,添加完成如下图所示:


在 pmon 默认的 bsp 中,默认添加了代码 select nand,所以这里我们不必要在添加代码 select nand,而select 指定的是后面的参数 nand 被选中,选中了 nand 参数以后,在 conf/files 文件中使用 file 指定的 c 文件就可以被编译到 pmon 里面。因为 file 指定的文件编译与否取决于后面的参数有没有被选中,needs-flag 表示为该文件生成头文件。

然我们回过头再来看条件编译的这部分代码,如下图所示:


如果我们定义了 NNAND 和 CONFIG_LS2K_NAND,就是执行*(volatile int *)0xbfe10420 |= (1<<9) 代码将GPIO 的管教复用设置为 NAND,,如果没用定义这俩个宏定义,就将复用关系设置为 GPIO,如下图所示:


如果定义了这俩个宏定义,接着就会调用 ls2k_nand_init 函数来初始化 nand,我们跳转到 ls2k_nand_init函数定义的 sys/dev/nand/ls2k-nand.c 驱动文件,通过阅读代码我们可以找到对 mtd 结构初始化的驱动函数为 ls2k_nand_init_mtd,通过访问 mtd 就可以访问 nand


在 ls2k_nand_init_mtd 函数中,最关键的是对 ECC 的选择,在 pmon 中默认的 ECC 有 NAND_ECC_SOFT 和NAND_ECC_SOFT_BCH 俩种。BCH 校验比 ECC 校验有更强的纠错能力,龙芯 BSP 里面默认使用的是 ECC 校验,代码如下:

如果我们需要使用 BCH 校验,需要在在 Targets/LS2K/conf/ls2k 中定义 select nand_bch,,这个我们选择 BCH 校验,如下图所示:


迅为龙芯2K1000核心板参数:

尺寸: 65mm*55mm
CPU: GS264双核处理器
主频: 800MHz-1GHz
内存: 2GB/1GB DDR3
NAND容量: 512M 
存储: 8MB的存储,用来放BOOT引导程序的
电源管理: 支持ACPI
工作电压: 12V和5V
引角扩展: 引出脚多达232个,1.0间距邮票孔方式,满足用户各类扩展需求
系统支持: Busybox;longnix,buildroot 系统,QT5.12
工作温度: 0℃ ~ +70℃ 
GPU: 内置GPU,支持动态电源管理
图形编程接口: 支持 OpenGL ES2.0, OpenGL ES 1.1,OpenVG
VPU: 解码支持 H264, H263, JPEG, MPEG-4,VP6.2,DivX5
Camera 1路,兼容ITU-R BT 601/656接口
IIS: 1 路
SD/MMC/SDIO: 1路
PCIE: 2 路PCIe 2.1
SATA : 1路
Ethernet: 2 路(10/100/1000M)
UART: 3路全功能串口,最大12路串口
IIC: 1路
SPI: 1路
USB: 3 路,USB Host 2.0,1 路,USB OTG
PWM: 4 路
CAN 2 路
LCD 2 路 RGB888

迅为龙芯2K1000底板参数:
尺寸: 190mm*125mm
POWER: 电直流电源输入接口
SWITCH: 电源开关
Ethernet: 2 路10M/100M/1000M自适应以太网
USB HOST: 4路USB2.0
OTG: 支持
Mini HDMI: 支持
WIFI/BT: 板载WIFI、蓝牙二合一模块
Mini PCIE: 可外接mini PCIE接口的4G模块,具备PCIE2.0单通道
4G模块: 支持(选配)
SIM Card: 1个
UART: 2路串口
RS485: 1路
CAN: 2路
蜂鸣器: 一个有源蜂鸣器
RTC: 支持
LIO/UART: (2mm间距20PIN插座引出)
GPIO: (2mm间距20PIN插座引出)
耳机接口: 标准3.5mm耳机接口
JTAG: 1路JTAG调试接口(2mm间距10PIN插座引出)
GPS: 一路GPS(选配)
固态硬盘接口: 1路(SATA固态盘选配)
按键: 3个
温度传感器: 支持
风扇驱动: 支持

迅为龙芯2K1000开发板PMON开发之配置nand flash之配置pmon相关推荐

  1. 迅为龙芯2K1000核心板国产Linux工业板卡适用于工控电力能源行业方案

    龙芯 2k1000 采用 40nm 工艺,片内集成 2 个 GS264 处理器核,主频 1GHz,64 位 DDR3 控制器,以及各种系统 IO 接口. 商业级参数 CPU:龙芯2K1000双核商业级 ...

  2. 迅为龙芯2K1000开发板双核64位系统处理器,流畅运行多个系统

    迅为电子的iTOP-2K1000核心板对外提供的接口是邮票孔方式.搭载龙芯2K1000处理器,处理器集成2个64 位GS264处理器核,主频1GHz,以及各种系统IO接口.集高性能与高配置于一身. 迅 ...

  3. 迅为龙芯2K1000开发板Linux环境变量

    1 环境变量 环境变量是系统预设值的参数. Linux 是一个多用户的操作系统, 所以每一个用户也都有自己的环境变量. 举例: 比如我们之前学习的命令不管在哪个路径下输入, 都是可以执行成功的, 因为 ...

  4. 转载:百为STM32开发板教程之十二——NAND FLASH

    http://bbs.21ic.com/icview-586200-1-1.html 百为STM32开发板教程之十二--NAND FLASH 参考资料: 百为stm32开发板光盘V3\百为stm32开 ...

  5. 迅为龙芯2K1000开发板国产处理器操作系统

    1.硬件配置 国产龙芯处理器,双核64位系统,板载2GDDR3内存,流畅运行Busybox.Buildroot.Loognix.QT5.12 系统! 2.接口全 板载4路USB HOST.2路千兆以太 ...

  6. 迅为龙芯2K1000开发板编译Linux内核

    loongnix操是国产操作系统,带有非常友好的人机交互界面,可以运行在LS2K1000上,本章我们就一起来看下如何给开发板安装loongnix国产操作系统. 1.下载系统安装镜像 Loongnix系 ...

  7. 迅为-龙芯2K1000开发板虚拟机ubuntu系统开关机

    龙芯2K1000开发板在安装完虚拟机ubuntu系统以后,我们要正确的进行开关机操作,如果开关机操作不当,可能会造成虚拟机ubuntu系统崩溃,所以当我们结束在ubuntu系统上的工作以后,我们要正确 ...

  8. 迅为龙芯2K1000开发板虚拟机ubuntu安装SSH服务

    在搭建开发环境的时候, 提到了不要给电脑安装双系统, 因为我们经常要在 ubuntu 和 windows 上互传文件, 所以我们要使用虚拟机,然后在虚拟机里面安装我们 ubuntu 操作系统. 那么我 ...

  9. 迅为龙芯2K1000开发板虚拟机ubuntu安装VMtools工具

    VMware Tools是VMware软件中自带的一个工具,我们只有在VMware虚拟机中安装好这个工具,才可以实现文件在虚拟机ubuntu和Windows之间的复制,粘贴等操作,并且可以实现根据实际 ...

最新文章

  1. 我们的解决方案:日志系统
  2. 剑指offer二之替换空格
  3. noip2006总结
  4. 软工Chapter Seven
  5. 图灵机器人-Java/Android
  6. Qt Creator向项目添加库
  7. (四)协同过滤算法之基于用户的推荐算法python实现
  8. 安川g7变频器说明书_安川机器人故障维修合集
  9. 04-1.jQuery事件与补充each/data
  10. 放弃Eclipse Juno
  11. 运行时vs编译时类路径
  12. 移植mysql到嵌入式ARM平台
  13. 对应sql建表_图解SQL面试题:如何查找工资前三高的员工
  14. hdu 1281棋盘游戏(二分匹配)
  15. 音视频处理、图像处理、图像识别和字符识别全能库JavaCV完整教程(包含完整JavaCV入门、JavaCV实战、ffmpeg、opencv和tesserac教程)
  16. Flink catalog简单使用
  17. html5颜色选择按钮,H5的input color系统颜色选择器
  18. 卸载一个游戏计算机里还有文件,如何处理pc游戏卸载后留下的残余文件?
  19. pytest -------- 生成测试报告+ 定制报告(allure生成报告)测试报告生成工具Allure 集成到pytest中【十三】
  20. 99乘法表,读写文件,函数

热门文章

  1. 荣耀路由2 虚拟服务器,荣耀路由2用手机怎么设置? | 192路由网
  2. java biginteger 取模_Java BigInteger类
  3. 码农小汪-设计模式之-命令模式
  4. js数组怎么删除指定元素?
  5. Tornado html生成动态pdf
  6. Cesium实战专栏09.Cesium动态立体墙
  7. Python 接收CMD返回
  8. java进程运行一段时间停止_kafka总是在启动一段时间后自动停止
  9. @Target、@Retention、@Documented注解
  10. SignalR向部分客户端进行消息推送