关键词:
ubuntu1604系统下搭配ckermit和dnw基于RAM的裸机程序调试环境
系统: ubuntu16.04
裸板: 飞凌公司OK6410开发板
目标:搭建基于ubuntu1604系统和基于RAM的裸机程序开发环境
1、安装配置ckermit
在ubuntu1604下一般做裸板开发时都是使用ckermit作为远程通讯终端,下面我们就开始讲解下其安装与配置。
1.1、安装ckermit
在ubuntu系统下安装ckermit,使用
sudo apt-get install ckermit
即可实现自动安装。
1.2、配置
在当前用户的根目录下,即~所指向的目录,例如:/home/alston,这个目录就是我的根目录,这里的alston是我当前用户名。
在用户的根目录中创建[.kermrc]文件,并在该文件中,填入如下内容:
set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
2、配置安装dnw的下载环境
2.1、安装dnw
这里的安装dnw其实就是从网站上下载【dnw4linux-master.zip】,并把这个文件解压到一个目录中。
【下载地址: https://github.com/Qunero/dnw4linux】
下载完代码后,一定要阅读里面的README
1、源码说明:
本源代码收集自网络,经过整理和加入宏定义,使其适用于OK6410开发板;对
源码进行了适当的注释和错误纠正;同样以GPL协议发布;
2、使用说明:
2.1 编译
直接在解压后的目录中make即可;然后在对应的子目录中可以找到编译好的文件;
更方便的做法:make install 会直接将相关文件编译好,然后放到当前目录下,
编译好的文件为:
dnw --- 用于传输数据的软件,用法: dnw filename
secbulk.ko --- 识别下载用USB的驱动; 用法: sudo insmod secbulk.ko
2.2 自动化
在编译成功后,完成下列步骤方面以后使用:
2.2.1 将dnw放到系统路径: sudo cp dnw /usr/sbin/
2.2.2 将secbulk.ko驱动设为自动加载:
先在住目录建立mydriver目录:mkdir ~/mydriver
将驱动放入自定义mydriver中:cp secbulk.ko ~/mydriver/
修改/etc/rc.d/rc.local文件,末尾加入: sudo insmod $HOME/secbulk.ko
注意: 将上面的$HOME替换成实际的绝对路径,比如: /home/qulory
2.3 清理
直接执行make clean, 让你的源码目录干干净净;
2.4 使用
注意,当前编译好的dnw在32位linux可用,但是secbulk.ko驱动文件需要自己编译
必须同当前使用的内核的版本一致,内核版本升级后也需要重新编译;
3、移植帮助:
要成功移植到类似的开发板,需要以下2步:
3.1 驱动处理:
进入secbulk_driver子目录,修改文件secbulk.c中的关于DOWNLOAD_USB_ID_MAJOR
和DOWNLOAD_USB_ID_MINOR的宏定义,让其与你的usb对应,可以通过lsusb命令查看
获得该id的信息;
3.2 dnw下载地址的处理:
进入dnw_src目录,修改dnw.c文件中DOWNLOAD_ADDR的定义,将其设为你的开发板
的下载地址;
2.2、配置dnw
这里的配置dnw其实就是修改压缩包里的【secbulk.c】文件,修改其中的两个宏,获取要运行dnw的PC上的这两个宏值,使用lsusb获取如下
修改宏值如下:
#define DOWNLOAD_USB_ID_MAJOR 0x1a86
#define DOWNLOAD_USB_ID_MINOR 0x7523
之后,退到压缩包的第一级目录,使用make install编译dnw和dnw的USB驱动。
编译好之后,生成的程序可以直接作用与OK6410开发板。
3、使用dnw下载裸机程序
给开发板刷入uboot程序即可,并切换到nand flash启动。
3.1、进入下载模式
打开两个终端,一个输入ckermit命令,打开串口调试,当开发板加载uboot时按下PC上的空格键,使其停在下载模式,输入以下命令:
SMDK6410# dnw 0x50008000
此时终端打印以下信息,说明USB连接成功,就等待你下载传输了。情况如下:
3.2、下载
在另外一个终端输入以下命令,下载文件:
$ sudo dnw -f /你要下载的文件路径/文件名
3.3、运行裸机程序
现在你的程序已经下载到内存当中了,如果你想在内存中运行你的程序,只需要输入下面一句命令即可:
SMDK6410# go 0x50008000
执行go后,系统开始启动uboot,相应的裸机程序也会随之运行,不过因我们只刷了uboot,故此,uboot会一遍遍的重启,导致,程序也会一遍遍的重启,故,我们可以在程序的最后键入一个死循环,这样可维持我们的程序执行之后的状态。
至此,dnw的介绍结束,因为之前研究过Linux下的dnw使用,至今已有好久没用了,此次记录,一是方便以后回顾,二是也希望给新手一个指导。
修改飞凌ok6410的默认lcd显示设备(代码片段)
我用的飞凌OK6410开发板在烧入系统(Wince6.0系统)后,默认是采用4.3寸触摸屏显示,而我的项目中采用的是HDMI高清显示,因此每次烧完系统后,都要重新用DNW来配置为高清显示驱动,比较麻... 查看详情
ok6410[000]搭建裸机开发环境
1、安装交叉工具链arm-linux-gcc-4.3.2先把这个工具复制到rhat系统中【rhel-server-6.3-i386-dvd.iso】解压arm-linux-gcc-4.3.2到一个目录中,然后,配置环境变量 2、编译示例程序编译arm-linux-gcc-g-cled.S链接arm-linux-ld-Tled.lds-oled.elfled.o格式转换... 查看详情
ok6410的lcd裸机范例
/******************************************实验步骤1.配置引脚功能,将其GPI、GPJ引脚设置为VD数据输出模式,及GPJ后几位设置成LCD时钟输出;2.设置LCD时序值,初始化时序值。(1)需要初始化时序:VSPW、VBPD、LINEVAL、VFPD、HSPW、HBPB、HOZVAL... 查看详情
修改eboot使ok6410a(128m内存+256mnand)支持hdmi高清显示(代码片段)
...前一直使用OK6410A(256M内存+2GNand)(WinCE6.0系统),买了块HDMI高清显示,跟飞凌技术要了资料,按照所给的资料说明,对Eboot做了修改后,就可以正常使用HDMI高清显示了。最近为了节省几十... 查看详情
ok6410内存初始化--未完待续
•DRAM:它的基本原件是小电容,电容可以在两个极板上保留电荷,但是需要定期的充电(刷新),否则数据会丢失。缺点:由于要定期刷新存储介质,存取速度较慢。•SRAM:它是一种具有静止存取功能的内存,不需要定期... 查看详情
ok6410裸机驱动学习c语言内嵌汇编
1.C语言内嵌汇编使用方法C内嵌汇编以关键字”_asm_或asm开始,下辖4个部分,各部分之间用“:”分开,第一部分是必须写的,后面3个部分可以省略,但是分号:不能省略优化后的代码 2.汇编程序框架.section.data<初始... 查看详情
ok6410上移植uboot出现nand:nonanddevicefound!!!打印信息如下:
U-Boot2010.03(8月262013-09:43:51)forSMDK6410CPU:S3C6400@533MHzFclk=533MHz,Hclk=133MHz,Pclk=66MHz(ASYNCMode)Board:SMDK6410By青天DRAM:256MBFlash:0kBNAND:NoNANDdevicefound!!!0MiB***Warning-badCRC,usingdefaultenvironmentIn:serialOut:serialErr:serialNet:CS8900-0Hitanykeytostopautoboot:0参考技术A... 查看详情
ok6410按键驱动程序
求OK6410开发板按键驱动程序和测试程序#include<linux/miscdevice.h>#include<linux/delay.h>#include<asm/irq.h>#include<mach/hardware.h>#include<linux/kernel.h>#include<linux/module.h>#include<linux/init.h>#include<linux/mm.h>#include<linu... 查看详情
第5章:搭建s3c6410开发板的测试环境
...出的S3C6410开发板的基础上开发的OK6410开发板上安装Android系统。安装串口调试工具:minicom第1步:检测当前系统是否支持USB转串口第2步:安装minicom第3步:配置minicom第4步:测试minicom使用Eboot擦除NandFlash的方法如下:第1步:准备... 查看详情
修改smdk6410的调试串口为普通串口(wince系统)
环境:飞凌OK6410A开发板,WindowsCE6.0系统 最近在做GPRS通信,可是手头上的GPRS模块(Q2403A)是五线串口的(RXD、TXD、GND、RCS、CTS),老板又不愿买新的模块。所以考虑将调试串... 查看详情
ubuntu解压zip分卷
参考技术A例如linux.zip.001,linux.zip.002,linux.zip.003...首先catlinux.zip*>linux.zip#合并为一个zip包然后unziplinux.zip#解压zip包OK! 查看详情
在 Azure Devops 托管的 Ubuntu 1604 上找不到核心转储
】在AzureDevops托管的Ubuntu1604上找不到核心转储【英文标题】:CannotfindCoredumponAzureDevopsHostedUbuntu1604【发布时间】:2020-12-0413:30:22【问题描述】:我们在托管Ubuntu1604的测试环境中遇到了“分段错误”。然而,尽管尝试启用各种设置... 查看详情
sh安装后脚本ubuntu1604shell(代码片段)
没有那个文件或目录
root@ubuntu:~#cpReal6410-3c.config.configcp:无法获取"Real6410-3c.config"的文件状态(stat):没有那个文件或目录root@ubuntu:~#cd/home/linux/s3c-linux-2.6.28.6-Real6410-su:cd:/home/linux/s3c-linux-2.6.28.6-Real6410:没有那个文件或目录怎么办?急求是你命令输入... 查看详情
centos7下搭建高可用集群
一、安装集群软件必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件。二、配置防火墙1、禁止防火墙和selinux#systemctldisablefirewalld#systemctlstopfirewalld2、设置防火墙规则#firewall-cmd--permanent--add... 查看详情
dnf手动补丁怎么安装ubuntu1604手动安装mongodb
一.在Ubuntu下最傻瓜的步骤(以下都在root用户下进行操作):1.运行;apt-getinstallmongo;如果遇到找不到安装包的话运行;apt-getupdate;2.这时装好以后应该会自动运行mongod程序,通过;pgrepmongo-l;查看进程是否已经启动3.在终端输入;mongo;,... 查看详情
springboot脚手架项目002-004.springioc_权限管理系统_spring:什么是iocspringbean注入springbean的注解bean的加载流程
SpringBoot脚手架项目002__权限管理系统文章目录SpringBoot脚手架项目002__权限管理系统前言依赖注入的例子最终我们是怎么来去克服这种问题的(逆向思维)SpringBean声明SpringBean和注入SpringBean定义Bean,只需要记住这四个... 查看详情
ubuntu1604ros安装开发学习记录持续更新中(代码片段)
Ubuntu1604ROS安装、开发、学习记录一、绪论1.1引言1.2书籍推荐1.3ROS介绍二、ROS安装2.1添加代码列表2.2设置公钥2.3更新软件包索引2.4安装ROSKineticKame2.5初始化rosdep2.6安装rosinstall2.7加载环境设置文件2.8创建并初始化工作目录2.9测试安... 查看详情