首先声明,我是一个菜鸟。一下文章中现出技术误导情况盖不负责

嵌入式开辟境环包含两个分部,具工境环和调试境环。在前一篇文章《嵌入式开辟境环-交叉编译+tftp+minicom》中分析了具工境环的搭建,在这篇续中,将分析利用这些具工境环搭建的一个嵌入式的调试境环。当然,我这篇续不是什么操纵导指文章,只是明说一下我个人较比爱好的调试方法,比拟vxworks,linux驱动开辟境环还是非常的原始,vxworks下workbench下天统一,无论是BSP还是驱动程序,抑或是RTP程序,一个workbench让你从码编到在线调试都可以顺遂完成,用着非常的舒服。当然其价值就是非常多的dollar,有钱的受享服务,没钱的就自己手动。

嵌入式开辟非无就是BSP开辟和驱动开辟两个分部,和有所其它开辟作工一样,调试间时占开辟周期的大分部际实,够能便利的调试修改后的内核和驱动程序将大大的高提作工效率。想想我们常通的开辟步调,就是修改然后载下到板子上调试,通过口串查看调试结果。这里分析下我较比爱好的一种调试模式:u-boot先植移、调试功成,化固到flash中,用使tftp在线加载内核,挂载一个nfs文件系统。这样无论是内核还是新编写的驱动程序,都可以速迅的停止测试,而不必大动干戈的擦写flash。

开辟板是OK6410,u-boot是1.1.6版,自己添加、修改使其持支OK6410的DM9000网卡驱动。

一、载下内核

在读阅我的上篇文章《嵌入式开辟境环-交叉编译+tftp+minicom》后,启用tftp服务端和口串终端很简单。

#sudo service tftpd-hpa restart

#minicom

顺遂的话,在口串终端中你经已可以看到u-boot的初始化调试息信了,速迅的按任意键进入u-boot的令命模式。

#tftp 0xc0008000 zImage

面下的令命是告知u-boot,从tftp的服务端根目录下,取读zImage文件到存内0xc0008000位置。(如你所知,这步要顺遂完成,你必须将一个可用的内核zImage文件置于tftp服务端的根目录下)

待tftp取读zImage文件完成后,行运bootm 0xc0008000,畸形的话就开始内核行运了,你将会看到悉熟的starting kernel。

畸形的话,你将看到kernel panic,因为你没有根文件系统。

在这里你有两种选择,一是烧写可用的根文件系统到flash指定位置;一另各是用使nfs。若你决议用使nfs,请续继下一个分部。

二、加载nfs

首先建立一个目录,具有nfs的根目录。

#mkdir nfs/root

#cp yaffs /nfs/root

每日一道理
成熟是一种明亮而不刺眼的光辉,一种圆润而不腻耳的音响,一种不要需对别人察颜观色的从容,一种终于停止了向周围申诉求告的大气,一种不理会哄闹的微笑,一种洗刷了偏激的淡漠,一种无须声张的厚实,一种并不陡峭的高度。

如果你之前没有用使过nfs,那么用使前你必须安装一些基本件软。重要操纵如下:

#sudo apt-get install portmap

#sudo apt-get install nfs-kernel-server

安装这两个件软后,要需配置以下nfs服务端。

#sudo vi /etc/exports

在文件最后加上一段

/home/eric/Documents/nfs *(rw,sync,no_root_squash) (这里的/home/eric/Documents/nfs请根据自己的际实情况配置,注意,在nfs下请建立一个root目录,否则服务可能动启失败)

接下来动启nfs服务

#sudo /etc/init.d/portmap restart
         #sudo /etc/init.d/nfs-kernel-server restart
         确保没有fail现出,就表现服务动启功成了,面下查看一下nfs服务态状

#service portmap status
         portmap start/running, process 26038
         #service nfs-kernel-server status
         nfsd running

如果面下一切畸形,表现nfs服务经已可以用使了,接下来配置一下u-boot的境环变量,让它告知内核挂载nfs。

设置u-boot的境环变量,改更动启参数,我的如下:

setenv bootargs "root=/dev/nfs nfsroot=192.168.1.10:/home/eric/Documents/nfs/root/FileSystem-Yaffs2        ip=192.168.1.20:192.168.1.10:192.168.1.1:255.255.255.0:witech.com.cn:eth0:off console=ttySAC0,115200"

saveenv

注意:

192.168.1.20是板子的ip地址

192.168.1.10是机主的ip地址

192.168.1.1是网关地址

255.255.255.0是子网掩码

接下来,我们的系统可以顺遂动启了。用使tftp 0xc0008000 zImage载下系统,bootm 0xc0008000动启,顺遂的话你可以看到系统畸形动启,并且挂载了你机主上的nfs。

当你畸形的一步步都这里,你经已可以很易容的开始你的BSP和驱动的调试了,至少是很易容的在板子上行运你修改后的代码,你可以将你的驱动放在nfs下,这样板子一动启你就够能测试的驱动是不是确正,样同你也可以测试你的应用程序。当然,你要是认为这样文件不清晰的话,可以挂载机主的某个目录到目标机上,构成两者目录的同享。

三、挂载目录到目标机

网路境环配置和挂载nfs相似,你在目标机上建立一个目录,执行面下的令命。

#mount -t nfs -o nolock 192.168.1.10:/mnt  /tmp

操纵完成后,你在目标机上执行ls -l,就够能看到机主mnt目录下的有所容内。

虽然有这些具工可以帮我们较比速迅的调试程序,但是,这样究终没有在IDE下开辟效率高,希望什么时候linux平台下有一个收费、源开的workbench类件软,那样该应会有更多的人投入linux开辟的度量。

文章结束给大家分享下程序员的一些笑话语录: 古鸽是一种搜索隐禽,在中国快绝迹了…初步的研究表明,古鸽的离去,很可能导致另一种长着熊爪,酷似古鸽,却又习性不同的猛禽类——犤毒鸟

调试内核Ubuntu 搭建嵌入式开发环境-续相关推荐

  1. linux pip3使用清华源_Linux实战016:Ubuntu搭建python开发环境

    我们在安装Ubuntu系统的时候会自带安装python2.7和python3.6版本的Python解释器,直接执行"ptyhon"默认运行的是python2.7,只有执行" ...

  2. ubuntu vscode 配置字体_第五章 Ubuntu搭建ESP32开发环境(vscode)

    Vscode安装 ubuntu软件中自带vscode的安装包,一键完成,不废话,没有的想办法解决. 编译链操作 下载 官方最新地址 有系统区别,下载对应的压缩到到电脑 · for 64-bit Lin ...

  3. 基于ubuntu的嵌入式开发环境

    基于ubuntu的嵌入式开发环境 1.更新系统源 2.安装嵌入式开发环境(安装嵌入式开发所需工具) 3.安装OPENCV(可选) 4.更新VIM配置 5.虚拟终端路径太长的问题 6.安装nfs和tft ...

  4. VSCode 和 CMake 搭建嵌入式开发环境

    CMake 与 VSCode 搭建 ARM 构建环境 1. 前言 在嵌入式领域能够选择的集成开发环境(IDE)很多,有通用型的,例如 Keil,IAR,给他们安装一个相应芯片的描述包即可开发相应芯片的 ...

  5. ubuntu java 开发环境_详解ubuntu搭建Java开发环境

    没有用Java写过程序,做为一个Java新手,在写第一个Hello,world程序之前,先在Ubuntu中搭建Java开发环境. 本文结构: 一.JDK安装 二.MyEclipse安装 三.Hello ...

  6. 在Ubuntu 20.04上面搭建嵌入式开发环境

    电脑系统盘出故障了,重新安装了Ubunt20.04(之前用的是18.04).日常工作编译基于Rockchip和AM335x系列芯片的内核和U-boot比较多,所以先搭建它们的开发环境(包括并不限依赖的 ...

  7. 使用eclipse搭建嵌入式开发环境

    下载jdk http://download.oracle.com/otn-pub/java/jdk/7u4-b20/jdk-7u4-linux-i586.tar.gz 下载eclipse-cpp-ga ...

  8. ubuntu搭建esp-idf开发环境 解决github下载慢

    简述 乐鑫为了解决国内用户在安装idf开发环境时,因下载过慢导致下载失败的问题,在gitee(码云)上提出了一套解决方案.使得国内用户能快速安装开发环境. 具体项目地址:https://gitee.c ...

  9. Ubuntu搭建嵌入式开发(交叉编译)环境-转

    大家都比较熟悉gcc编译家族了,但是交叉编译到arm平台的代码是不直接使用gcc的,需要类似名字的一个程序. 1.首先写一个简单的c程序,helloArm.c, 如下: 1 /* 2 * ====== ...

  10. 使用云服务器安装QEMU搭建嵌入式开发环境

    早之前就知道有QEMU,但是那会没能搭建起来.现在手头正好有个阿里云服务器,正好拿来试试手. 用的是Ubuntu的操作系统.先把qemu装了 apt-get install qemu 交叉编译工具 a ...

最新文章

  1. 写文章 使用conda管理python环境
  2. SAP CRM产品主数据明细页面无法打开的调试步骤
  3. 华为鸿蒙系统还没发布吗,华为没有孤军奋战,合作伙伴“雪中送炭”,鸿蒙系统正式发布!...
  4. SLAM Cartographer(6)传感器桥梁
  5. spring4.0基于Java配置_Spring MVC学习笔记之Controller查找(基于Spring4.0.3)
  6. OpenXml开发-向文档中添加样式
  7. mysql binlog 恢复
  8. XML Schema 简介
  9. Knockoutjs开发指南
  10. Seaweedfs安装配置使用及mount挂载
  11. Java零基础学习021-API进阶第二天
  12. Redis Lpush 命令
  13. ubuntu服务器基本安全配置
  14. 如何设置正确的dns服务器地址,dns服务器地址如何设置
  15. 7-4 求奇数和 (15 分)
  16. Dichotomy poj River Hopscotch
  17. php画圆 锯齿,优雅的解决canvas画圆锯齿问题
  18. 微信开发工具报错:UNKNOWN ERROR:tunneling socket could not be established,cause=getaddrinfo ENOTFOUND socks
  19. autojs上传蓝奏云UI模板
  20. 弘扬岭南画派爱国精神,广州市海珠区文博管理中心等联袂举办爱国名画进校园

热门文章

  1. 查询数据进行排名,一样的并列
  2. 内存管理之直接内存管理
  3. select引起的服务端程序崩溃问题
  4. 关于 SQLNET.AUTHENTICATION_SERVICES 验证方式的说明
  5. 「本地搭建」worpress博客系统
  6. 【随感】i want to rest ,i want to read some books ,i want tone sleep
  7. 绘制自己组合的k线图_史上最全K线图大全:搞懂70种K线组合形态,轻松低买高卖不踏空...
  8. xtrabackup备份mysql数据库
  9. celery+rabbitmq+redis 分布任务队列探索(一)
  10. 使用git遇到的问题汇总