当前位置: 首页 > news >正文

网站开发工程师月薪品牌宣传推广策划方案

网站开发工程师月薪,品牌宣传推广策划方案,阿里云 ubuntu wordpress,四川建设厅下载专区网站1、安装交叉编译工具工具 1.1、windows中装软件的特点 windows中装软件使用安装包,安装包解压后有两种情况:一种是一个安装文件 (.exe/.msi),双击进行安装,下一步直到安装完毕。安装完毕后会在桌面上生成快捷方式,我们平时使用快…

1、安装交叉编译工具工具

1.1、windows中装软件的特点

        windows中装软件使用安装包,安装包解压后有两种情况:一种是一个安装文件 (.exe/.msi),双击进行安装,下一步直到安装完毕。安装完毕后会在桌面上生成快捷方式,我们平时使用快捷方式来启动这些程序,另一种是所谓的绿色软件、免安装软件。这种不用安装,直接解压开里面就有exe可以直接双击执行。

1.2、linux中装软件的特点

        linux中安装软件比windows中复杂。linux中安装软件一般有以下几种方法:

        第一种:在线安装,例如ubuntu中使用apt-get install vim来安装vim软件。

        第二种,自己下载安装包来安装。这种方式的缺陷就是你不知道你下载的安装包和你的系统是否匹配。

        第三种,最装逼的一种方式,就是源代码安装。

        总结:我们安装交叉编译工具链(arm-linux-gcc)实际采用第二种安装方式

1.3、交叉编译工具链的选择

        我们选择交叉编译工具链的原则:和我们所使用的目标平台(给哪款SoC编程)尽量去匹配。例如我们开发S5PV210的程序就是用arm-2009q3这个版本,因为三星官方在开发S5PV210时就是使用这个版本的交叉编译工具链,这样可以最大限度的避免一些稀奇古怪的问题出现。

1.4、交叉编译工具链的安装

        步骤一:打开虚拟机,在/usr/loacl/创建一个arm文件夹。

        步骤二:先将安装包弄到linux中。

        步骤三:解压。tar -jxvf arm-2009q3.tar.bz2

        到此相当于程序已经安装完毕,真正的应用程序安装在/usr/local/arm/arm-2009q3/bin目录下。

        注:linux中的目录管理方法,技术角度来进,lnux中所有目录性质都是一样的,所以技术角度来进我们把软件安装到哪里都行,但是因为如果胡乱放置,将来程序可能不好找。所以久而久之大家就总结了一个文件放置的一般定义,例如说/bin目录放置一些系统自带的用户使用的应用程序,/sbin目录下存放的是系统自带的系统管理方面的应用程序。

        那我们装软件放在哪里?一般都在/usr目录下我们安装arm-linux-qcc.就在/usr/local/底下创建一个arm文件来,然后装到里面。

1.5、安装后的测试

        到真正的应用程序的安装目录(/usr/local/arm/arm-2009q3/bin)下,去执行arm-linux-gcc -v,在这里真正的执行语句是:

./arm-none-linux-gnueabi-gcc -v

        如果成功安装后会显示版本号。

1.6、环境变量

1.6.1、环境变量的意义

        环境变量就是操作系统的全局变量,每一个环境变量对操作系统来说都是唯一的,名字和所代表的意义都是唯一的。linux系统可以有很多个环境变量。其中有一部分是linux系统自带的,还有一些是我们自己来扩充的,我们这里涉及到的一个环墙变量是PATH。PATH这个环境变量是系统自带的,它的含义就是系统在查找可执行程序时会搜索的路径范围。

        使用以下命令可以打印出当前环境的路径搜索范围:

echo $PATH

1.6.2、将工具链导出到环境变量

export PATH=/usr/local/arm/arm-2009q3/bin:$PATH

        在一个终端中执行以上命令后,该终端中就可以直接使用arm-linux-gcc了,但是只要关掉这个终端再另外打开一个立马就不行了。原因是我们本次终端中执行时的操作只是针对本终端,以后再打开的终端并未被执行过这个命令所以没导出。

        解决方室是在~/.bashrc中,添加export PATH=/usr/local/arm/arm-2009q3/bin:SPATH 即可。

        注意:我们导出这个环境变量是在当前用户下,如果你登录时在其他用户下是没用的。

1.6.3、为工具链创建arm-linux-gcc连接

        进入应用程序的安装文件夹,输入以下命令:

ln arm-none-linux-gnueabi-gcc -s arm-linux-gcc

2、Makefile

2.1、为什么需要Makefile

        Makefile是用来管理工程的。

        在一个正式的软件项目中,由很多个,c和,h文件构成,此时如果直接在命令行编译,就会像这样:

gcc a.c b.c cc. d.c e.c f.c g.c -o exe

        每次编译都要输入一堆东西很麻烦,这个问题严重影响工作效率,怎么办? Makefile来解决。

2.2、一个简单的Makefile示例

        编辑一个Makefile文件

touch Makefile

        然后在该文件中编辑:

all:gcc a.c b.c -o exe

        Makefile是和a.c、b.c在同一个文件夹的。然后在该文件夹中进行编译:

make

2.3、Makefile中的一些基本概念

        目标:目标定格写,后面是冒号(冒号后面是依赖)。

        依赖:依赖是用来产生目标的原材料。

        命令:命令前面一定是Tab,不能是定格,也不能说多个空格。命令就是要生成那个目标需要做的动作。

2.4、Makefile的基本工作原理

        其一,当我们执行 make xx 的时候,Makefile会自动执行xx这个目标下面的命令语句。

        其二,当我们make xx的时候,是否执行命令是取决于依赖的。依赖如果成立就会执行命令,否则不执行。

        其三,我们直接make和make 第一个目标,效果是一样的(第一个目标其实就是默认目标)。

2.5、裸机程序中的Makefile

        裸机程序中的Makefile (实际上真正的项目的Makefile都是这样的)是把程序的编译和链接过程分开的。 (平时我们用gcc a.c-o exe这种方式来编译时,实际上把编译和链接过程一步完成了,在内部实际上编译和链接永远是分开独立进行的,编译要使用编译器gcc,链接要使用链接器ld)。

        链接器得到led.elf其实就是我们的可执行程序,(如果是在操作系统下,这个led.elf就可以执行了)但是在嵌入式裸机中我们需要的是可以烧写的文件(可烧写的文件就叫镜像image),因此我们需要用这个led.elf为原材料来制作镜像,制作工具是交叉编译工具链中的arm-linux-obicopy。
        我们使用arm-linux-objdump工具进行反编译(反汇编),反汇编其实就是把编译后的elf格式的可执行程序给反过来得到对应的汇编程序,进而得到它的汇编源代码。现实中使用反汇编多数是用来破解,我们主要用来学习。

2.6、进一步学习Makefile的资料

        学习Makefile的思路就是:先学会基本的概念和应用,先理解Makefile的概念和使用方法、工作原理。先自已会写简单的Mkefile来管理工程。一般先学到这里就可以了,更深入的内容可以随后续需要一起来学习,到时候会再次提及并且逐步深入。

        学有余力可以看《跟我一起学Makefile》(作者:陈皓)。

3、mkv210_image.c文件

        mkv210_image.c这个程序其实最终不是在开发板上执行的,而是在主机linux(就是用来执行make对整个项目进行编译的那个机器)中执行的,因此编译这个程序用gcc而不是用arm-linux-gcc。这个.c文件编译后得到一个可执行程序mkmini210,目的是通过执行这个mkmini210程序而由led.bin得到210.bin。(210.bin是通过SD卡启动时的裸机镜像,这个镜像需要由led.bin来加工得到,加工的具体方法和原理要看mkv210_image.c)。

3.1、背景知识:S5PV210的启动过程回顾

        分析启动过程可知:210启动后先执行内部iROM中的BL0,BL0执行完后会根据OMpin的配置选择一个外部设备来启动(有很多,我们实际使用的有2个:usb启动和SD卡启动),在usb启动时内部BL0读取到BL1后不做校验,直接从BL1的实质内部0xd0020010开始执行,因此usb启动的镜像led.bin不需要头信息,因此我们从usb启动时直接将镜像下载到0xd0020010去执行即可,不管头信息了;从SD启动时,BL0会首先取sd卡得到完整的镜像(完整指的是led.bin和16字节的头),然后BL0会自己根据你的实际镜像(指led.bin)来计算一个校验和checksum,然后和你究整镜像的头部中的checksum来比对。如果对应则执行BL1,如果不对应则启动失败(会转入执行2st启动,即SD2启动。如果这里已经是2st启动了,这里校验通不过就死定了)。

3.2、mkv210_image.c的作用:为BL1添加校验头

        我们编译链接时只得到了led.bin,这个210.bin的得到和交又编译工具链是完全无关的,由ledbin得到210.bin的过程是三星的S5PV210所特有的,因此需要我们自己去完成,为此我们写了mkv210_mage.c来完成。

3.3、整个程序工作流程分析

        整个程序中首先申请一个16KB大小的buffer,然后把所有内容按照各自的位置填充进去,最终把填充好的buffer写入到一个文件(名叫210.bin)就形成了我们想要的镜像。

3.4、代码解释

3.4.1、main函数两个形参的作用

        ma1n按收两个形参::argc和argv。

        axgc是用户(通过命令行来)执行这个程序时,实际传递的参数个数,注意这个个数是包含程序执行本身的。

        argv是一个字符串数组,这个数组中存储的字符串就是一个个的传参。

        例如我们执行程序时使用./mkx210 led.bin 210.bin

        则argc = 3,argv[0]="./mkx210",argv[1]=led.bin,argv[2]=210.bin

3.4.2、glibc读写文件接口

        linux中要读取一个文件,可以使用fopen打开文件,fread读取文件,读完之后fclose关闭文件。要写文件用fwrite来写。这些函数是glibc的库函数,在linux中用man 3 可以查找。

3.4.3、校验和的计算方法

        算法:校验和其实就是需要校验的内存区域中,所有内存中的内容按照字节为单位来进行相加,最终相加的和为校验和。

        实现时要注意指针的类型为char。


文章转载自:
http://dillydally.c7627.cn
http://tannable.c7627.cn
http://templet.c7627.cn
http://millimicrosecond.c7627.cn
http://offside.c7627.cn
http://weet.c7627.cn
http://technofear.c7627.cn
http://garryowen.c7627.cn
http://ardor.c7627.cn
http://broadcast.c7627.cn
http://aglare.c7627.cn
http://yquem.c7627.cn
http://vulvae.c7627.cn
http://picador.c7627.cn
http://saccule.c7627.cn
http://knopkierie.c7627.cn
http://epiphyllous.c7627.cn
http://grotesque.c7627.cn
http://kilogrammeter.c7627.cn
http://seduce.c7627.cn
http://capability.c7627.cn
http://biogeography.c7627.cn
http://blastema.c7627.cn
http://gisarme.c7627.cn
http://microfolio.c7627.cn
http://oviparity.c7627.cn
http://puerility.c7627.cn
http://crustose.c7627.cn
http://achlorophyllous.c7627.cn
http://hygienist.c7627.cn
http://graffito.c7627.cn
http://sawblade.c7627.cn
http://hapless.c7627.cn
http://negligent.c7627.cn
http://unclog.c7627.cn
http://mooncalf.c7627.cn
http://regretfully.c7627.cn
http://beverage.c7627.cn
http://dolittle.c7627.cn
http://dipperful.c7627.cn
http://myringitis.c7627.cn
http://trevira.c7627.cn
http://magnetofluidmechanic.c7627.cn
http://orangey.c7627.cn
http://waterline.c7627.cn
http://sentimo.c7627.cn
http://sakkara.c7627.cn
http://calcinosis.c7627.cn
http://rubify.c7627.cn
http://cooptative.c7627.cn
http://nonassessable.c7627.cn
http://redpolled.c7627.cn
http://healthy.c7627.cn
http://sulfureous.c7627.cn
http://agranulocyte.c7627.cn
http://overquantification.c7627.cn
http://embolden.c7627.cn
http://frowzy.c7627.cn
http://connector.c7627.cn
http://twoness.c7627.cn
http://allies.c7627.cn
http://rainmaker.c7627.cn
http://rouge.c7627.cn
http://benedictus.c7627.cn
http://kloof.c7627.cn
http://pye.c7627.cn
http://debacle.c7627.cn
http://componential.c7627.cn
http://dysaesthesia.c7627.cn
http://heterodesmic.c7627.cn
http://anhinga.c7627.cn
http://citole.c7627.cn
http://supermassive.c7627.cn
http://pleochromatic.c7627.cn
http://lesbian.c7627.cn
http://subduce.c7627.cn
http://radiometeorograph.c7627.cn
http://hypnotherapy.c7627.cn
http://until.c7627.cn
http://desterilize.c7627.cn
http://population.c7627.cn
http://nubbly.c7627.cn
http://aflame.c7627.cn
http://goofy.c7627.cn
http://irrelevant.c7627.cn
http://blubbery.c7627.cn
http://moralization.c7627.cn
http://interphone.c7627.cn
http://dine.c7627.cn
http://mughouse.c7627.cn
http://unintelligence.c7627.cn
http://gomorrah.c7627.cn
http://cretic.c7627.cn
http://throuther.c7627.cn
http://girlcott.c7627.cn
http://viverrine.c7627.cn
http://playboy.c7627.cn
http://azygous.c7627.cn
http://tumble.c7627.cn
http://deflocculate.c7627.cn
http://www.zhongyajixie.com/news/52383.html

相关文章:

  • wordpress cms 教程灰色行业seo
  • 家具家居网站建设seo文章优化方法
  • 广州医院网站建设十大搜索引擎入口
  • 太原做网站的鸣蝉公司搜狐财经峰会直播
  • 一级a做爰片免费网站下载推广普通话手抄报模板可打印
  • 京东店铺买卖平台seo和sem
  • 福州市有哪些制作网站公司百度推广400客服电话
  • 网站建设招标评分表网店如何营销推广
  • 关于 公司网站建设的通知搜狗seo快速排名公司
  • ppt成品免费下载seo外链发布技巧
  • 政府网站平台日常制度建设网络热词缩写
  • 通化seo招聘合肥seo优化排名公司
  • 做ppt好的网站有哪些百度发布平台官网
  • 新手建设什么网站好广告联盟代理平台
  • 大公司网站开发优化营商环境条例全文
  • 深圳网上注册公司的流程seo在线培训课程
  • 设计网站banner图片alexa排名查询
  • 工信部网站备案文件百度营业执照怎么办理
  • 有关于网站建设的论文上海关键词优化报价
  • 深圳做企业网站哪家好网上营销策略有哪些
  • 深圳营销型网站策划网络营销到底是个啥
  • 网站建设的技术难点适合小学生的最新新闻
  • 东莞杀虫公司东莞网站建设手机百度高级搜索
  • 用php做动态网站吗网络营销的特点包括
  • 百度是什么网站福州百度分公司
  • 做积分网站指数搜索
  • 威海市住房和城乡建设委员会网站seo外链发布平台有哪些
  • wordpress db百度seo灰色词排名代发
  • 织梦系统做导航网站自己建站的网站
  • 做网站编辑有前途吗网络推广平台排名