嵌入式Linux+ARM开发环境搭建 – Magic

操作系统: Ubuntu 12.04

学习平台: OK6410

内核版本: Linux_3.0.1

一、 编译工具VIM配置

"更新时间:2012年11月25日">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>">>>>>>>>>>>>VIM 自身相关配置

"1. 用于语法高亮的配色方案colorscheme evening"2. 禁止光标闪烁set gcr=a:block-blinkon0"3. 开启语法高亮功能syntax enable "4. 允许用制定语法高亮配色方案替代默认方案syntax on"5. 设置制表符占用空格数set tabstop=4set shiftwidth=4set noexpandtab"6. 开启行号显示set nu"7. 开启高亮显示结果set hlsearch"8. 开启实时搜索功能set incsearch"9. 在命令行显示当前输入的命令set showcmd"10. 禁止拆行"set nowrap"11. 关闭兼容模式set nocompatible"12. 禁止显示滚动条set guioptions-=lset guioptions-=r"13. 开启文件类型侦测filetype on"14. 根据侦测到的不同类型加载对应的插件filetype plugin on"15. 根据侦测到的不同类型采用不同的缩进格式filetype indent on"16. 定义快捷键的前缀,即<Leader>let mapleader=",""17. 关闭当前所有窗口nmap <Leader>q :wqall<CR>"18. 保存当前窗口内容nmap <Leader>w :q<CR>"19. 横向创建新窗口nmap <Leader>vp :vsp<CR>"20. 一键编译内核nmap <Leader>mk :wa<CR>:make kernel<CR>:cw<CR><CR>"21. 一键编译应用nmap <Leader>mp :wa<CR>:make platform<CR>:cw<CR><CR>"22. 一键编译nmap <Leader>ma :wa<CR>:make <CR>:cw<CR><CR>"23. 一键清除nmap <Leader>mc: make clean<CR>:cw<CR><CR>"24. Highlight current lineset cursorline"25. 自动保存set autowriteall">>>>>>>>>>>>>>插件相关配置"1. 使用NERDTree插件察看工程文件nmap <Leader>lf :NERDTreeToggle<CR>let NERDTreeWinSize=20let NERDTreeWinpos="right""2. 设置tablist插件let Tlist_Show_One_File=1nnoremap<Leader>ls :TlistToggle<CR>let Tlist_WinWidth=40let Tlist_Inc_Winwidth=0"3. 使用minibufexpl.vim插件管理bufferlet g:miniBufExplMapCTabSwitchBufs = 1"4. 支持用\K查看SHELL命令和C库函数的man信息source$VIMRUNTIME/ftplugin/man.vim"5. 取消补全内容以分割字窗口形式出现,只显示补全列表set completeopt=longest,menu"6. 使用grep.vim插件在工程内全局查找nnoremap<Leader>vg :Grep<CR>"7. 遍历各分割窗口"nnoremap<Leader>k <C-W><C-W>nnoremap<Leader>k <C-W>"8. 使用new-omni-completion补全imap<Leader><TAB> <C-X><C-O>"9. 支持文本折叠方式set foldmethod=syntax"10. 闭合折叠层数set foldlevel=100"11. cscope插件配置set cscopequickfix=s-,c-,d-,i-,t-,e-cs add cscope.out"Find symbol.nmap <silent> <leader>cs :cs find s <cword><CR><esc>"Find definitionnmap <silent> <leader>cg :cs find g <cword><CR><esc>"Find who call this functionnmap <silent> <leader>cc :cs find c <cword><CR><esc>"Find stringnmap <silent> <leader>ct :cs find t <cword><CR><esc>"Find egrepnmap <silent> <leader>ce :cs find e <cword><CR><esc>"Find filenmap <silent> <leader>cf :cs find f <cword><CR><esc>"Find which function it callnmap <silent> <leader>cd :cs find d <cword><CR><esc>                       "12. lookfile 快捷键配置let g:LookupFile_TagExpr = string('./filenametags')let g:LookupFile_MinPatLength = 2let g:LookupFile_PreserveLastPattern = 0let g:LookupFile_PreservePatternHistory = 0let g:LookupFile_AllowNewFiles = 0let g:LookupFile_AlwaysAcceptFirst = 1nmap <silent> <leader>lk :LookupFile<cr>nmap <silent> <leader>ll :LUBufs<cr>nmap <silent> <leader>lw :LUWalk<cr>

二、 交叉编译链

工具包:arm-linux-gcc-4.3.2.tgz

cross-4.2.2-eabi.tar.bz2 两者均是GCC编译器,只是版本有所不同,可根据实际情况使用。

(1)arm-linux-gcc的路径: #### mkdir -p /usr/local/arm; tar zxvf arm-linux-gcc-4.3.2.tgz -C /

(2) 编辑~/.bashrc,添加arm-linux-gcc搜索路径

102 # enable programmable completion features (you don’t need to enable103 # this, if it’s already enabled in /etc/bash.bashrc and /etc/profile104 # sources /etc/bash.bashrc).105 if [ -f /etc/bash_completion ] && ! shopt -oq posix; then106 . /etc/bash_completion107 fi108109 export PATH=$PATH:/usr/local/arm/4.3.2/bin/:/usr/local/arm/4.2.2-eabi/usr/bin

三、 TFTP工具安装

(1)$ sudo apt-get install tftpd tftp openbsd-inetd

(2)$ sudo gedit /etc/inetd.conf在这个配置文件里面找到下面的位置:#:BOOT: TFTP service is provided primarily for booting. Most sites# run this only on machines acting as "boot servers."#tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp#我把上面的默认的配置文件用井号注释掉了,自己配置了tftp的主工作目录为/tftptftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftp

(3)创建TFTP服务器的文件目录

$ chmod -R 777 /tftp

** 如果有需要下载的文件这时可以拷贝进去,也用chmod 777命令把所有权限打开

(4)启动(或重启)xinetd服务$sudo /etc/init.d/openbsd-inetd restart

(5)查看69端口是否有打开,使用下面命令netstat -an | more打印出的东西中找到如下即可:udp 0 0 0.0.0.0:69 0.0.0.0:*

(6)在本机测试一下:

a.在/tftp目下新建一个文件,并写入数据: www.linuxidc.com @linuxidc:/tftp$ echo helloworld > zhang.txt www.linuxidc.com @linuxidc:/tftp$ cat zhang.txt helloworld b. 到/home目录下 www.linuxidc.com @linuxidc:/home$ sudo tftp 221.204.110.99[注:这是本机的IP地址] [sudo] password for yishugao: tftp> get zhang.txt Received 12 bytes in 0.0 seconds tftp> quit www.linuxidc.com @linuxidc:/home$ cat zhang.txt helloworld www.linuxidc.com @linuxidc:/home$ 行了,本地测试成功!

(7)开发板OK6410上测试

首先,保证虚拟机的网络是Bridged模式,并且,本地连接属性中 VMware Bridge Protocol 打钩

使用命令 "tftp c0800000 Helloword"Helloword 是你虚拟机中 tftp 目录里的一个文件,记住最好把所有文件的权限改为 777

下面是tftp传输成功时,串口上的打印信息

SMDK6410 # tftp c0800000 HellowordFound DM9000 ID:90000a46 at address 18000300 !DM9000 work in 16 bus widthbd->bi_entaddr: 00:40:5c:26:0a:5b[eth_init]MAC:0:40:5c:26:a:5b:TFTP from server 192.168.0.101; our IP address is 192.168.0.232Filename ‘Helloword’.Load address: 0xc0800000Loading: T T ####doneBytes transferred = 19774 (4d3e hex)SMDK6410 #

四、 串口工具kermit

sudo apt-get install ckermit

使用kermit之前,在用户宿主目录下(/home/用户名/)创建一个名为.kermrc的配置文件,内容如下

set line /dev/ttyUSB0 //如果是串口就是ttyS0

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

网络问题:

(1)由于无线网卡跟本地有线网卡/板子网卡地址配置为同一子网,且无线网卡获取ip与板子地址一样,造成冲突;

解决: 将板子网卡和本地有线网卡配置成同一子网并与无线网卡独立开来

(2)移植Linux时,默认无法支持make uImage

(3)http://blog.csdn.net/challen537/article/details/6544878

续。。。。。。。。。。。。。。。。。。。

旅游,放松心情,用眼睛享受风景。

嵌入式Linux+ARM开发环境搭建 – Magic

相关文章:

你感兴趣的文章:

标签云: