打印

嵌入式linux读书笔记

[复制链接]
153|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
社畜一枚|  楼主 | 2018-10-5 14:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
(1)用到JTAG下载一次bootloader之后就能用串口/nfs的方式下载程序了,其实就是传输文件,都是以文件的形式传输必看步骤1.先烧写开发板的启动BIOS(supervivi-128M)到 NOR 中, 这在裸机 还是加入操作系统 都必须得一步。在以下步骤之前一定要安装好J-LINK驱动1.启动JLINK(flash)(使用JTAG) 2.打开mini2440工程(在jlink目录下面的mini2440.jflash)3.在JLINK_FLASH 中选target 下得connect4.打开安装映像中的supervivi-128M.bin,0地址打开 5.在target中选择erase chip6.然后选择programm 7.关闭电源,拔掉JTAG,打开终端,再开电源 2.完成第一步后,借助超级终端 则会 显示BIOS启动界面,然后有两种选择:(使用串口要先安装usb转串口驱动)第一种:只用于裸机开发,编写的程序直接利用BIOS就可以一次完成。第二种:加入操作系统,则要经过以下4步:(用USB传输,必须先安装USB下载文件的驱动)MINI2440 NAND为256M1.借助NOR 里面的BIOS格式化NAND里面的空间,(选择X)2.在NAND下载linux操作系统的启动脚本BIOS,(V,在安装映像linux 里面的supervivi-128M)3.在NAND下载linux的内核,(k,在安装映像linux 里面的zImage_T35) 4.在NAND下载文件系统,(y,在安装映像linux 里面的rootfs_qtopia_qt4.img)5.重新启动开发板,并把开关跳到NAND,从而从NAND启动 3、进入ViVi之后要查询某一个操作的功能输入help或者?都行然后会出现很多比如ls,要窒息看ls的用法就输入helpls或者?ls,如果要回到ViVi的菜单页面输入menu即可     

(2)安装VMware要做好开发环境,但是这里直接用到的是韦东山的UBUNTU9.10,其中已经安装好了ftp,ssh,nfs等功能,要用的时候只需自己开通就行了

(3)设置网络服务的配置与启动相关的服务方法:a、ftp上网功能 b、ssh主机虚拟机的相互ping通传输文件。c、nfs通过路由器来传输文件,也需要相互ping通,可以使用mount的功能

(4)拿到一个虚拟机装的linux系统,这里是韦东山的ubuntu9.10,就需要给他设置虚拟网络ip,方法是syst-->Administrator---->Network----->connections------>wired----->Propertices然后保存,重启网络的命令就行了,或者到etc/network中修改sudo vi interfaces

关于如何ping通(桥接bridge情况下),和如何nat共享上网的情况下见博文1、[size=18.399999618530273px]关于ubuntu7.10NAT上网设置问题和2、[size=18.399999618530273px]玩linux步骤可用[size=14.399999618530273px]sudo/etc/init.d/networking restart重启网络

(5)用sudo/etc/init.d/vsftpd restart就能ftp服务

      用 sudo/etc/init.d/portmap restart   和  sudo/etc/init.d/nfs-kernel-server restart               <---重启NFS服务。由此得出的规律是一般程序的重新启动或者初始化都在/etc/init.d这个文件夹当中

(6)一般程序是会下载到nandflash当中去的,那么S3C2440的cpu是会将前4K的代码移动到sRAM的steppingstone当中去,再从0地址开始运行

(7)所谓的安装交叉编译链也不过是一个文件夹而已在cd/work/tools这个文件夹当中解压tar xjfarm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2,解压得到的就是一个gcc-3.4.5-glibc-2.3.6文件夹里面有/bin,然后制定PATH就行了,程序想在哪儿编译就在哪儿编译,不用每次都指定地址

(8)安装了交叉编译库之后就能使用arm-linux-gcc了,这里为了显示效果都用虚拟机端的gcc来编译,从而可以显示出效果来记住-c 命令是包含了预处理,编译,汇编三个过程,所以一般的.c文件用gcc-c -o main.omain.c就能生成目标文件obj(main.o)了,假如有两个c文件都通过了汇编生成了.o文件

gcc-c -o main.omain.c

gcc-c -o sub.osub.c

那么下一步就是链接了,用gcc -o test(执行文件) main.o sub.o就能生成执行文件./test 了

-o表示的是别的名字命名,默认的名字是a.out

(9)用ls -l可以查看文件或者文件夹的属性

(10)其中的.elf文件时单板上的执行文件

(11)关于makefile可以看看书,中的函数调用都是类似$(函数 参数1,参数2,参数3)

(12)ldr的用法当有=表示读取伪指令,当无=表示内存访问指令

ldr  r1,=4096//这里=表示将4096读取到r1寄存器当中

ldr r1,[r2,#4]//表示将内存r2+4这个地址的值读取到r1寄存器当中

(13)常用的grep "requst"  kernel *-R其中要查找的内容用双引号表示,kernel表示要查找的文件夹,*表示文件夹中所有的文件,-R表示遍历查询的方式查找

(14)find find drivers/net -name "*fb"查找fb这个字样的了文件夹





(15)用diff常用于比较文件,目录,也可以补丁

(16)打补丁patch文件

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

397

主题

401

帖子

0

粉丝