第007课 裸机开发步骤和工具使用(SourceInght NotePad++使用)

2020-03-20来源: eefocus关键字:裸机  开发步骤  工具使用

001节_裸机开发步骤简介

回忆大学在VC6.0上面学习C语言,操作大致流程如下:


x86平台,Windows应用程序:建立工程/项目,编辑源码,编译代码(编译器:VC6.0),运行。


在Ubuntu上学习C语言,操作大致流程如下:


x86平台,Ubuntu应用程序:编辑源码,编译代码(编译器:gcc),运行。


两者是几乎一致的。


名词解释:


gcc:

gcc是linux系统下主要的编译软件, gcc的全称是GNU编译器套件(GNU Compiler Collection), 除了可以编译c语言开发的程序外,还可以开发C++、Java等多个语言的程序。 GCC的初衷是为GNU操作系统专门编写的一款编译器。

使用gcc的原因:功能强大、稳定、开源免费。


1)gcc -v查看gcc的版本,从而验证了gcc编译器正常。


不论你使用哪一个版本的gcc,只有后面能够正常编译就可以了。


2)gcc -o 输出文件名 源文件 

o:output


交叉编译模式:

通常编译嵌入式程序的平台成为宿主机(如:PC的ubuntu系统,CPU架构为X86架构), 运行嵌入式程序的平台成为目标机(如:某款ARM开发板,CPU架构为ARM架构)。 在X86平台编辑和和编译器arm-linux-gcc编译ARM架构的程序, 两者属于不同的架构平台,从而属于交叉编译模式。 然后将程序烧写到ARM开发板中(下载方式有:JTAG、USB、SD卡、网络等多种方式), 然后在开发板上运行该程序。

编辑器: 

推荐使用windows平台的source insight和notepad。 

source insight在查看代码、编辑代码等功能时非常好用。


编译器 

推荐使用arm-linux-gcc 

arm-linux-gcc是基于linux平台的arm编译器。它是开源免费的编译器。 

arm-linux-gcc功能强大、稳定、支持的arm芯片众多、更新速度快。


入门误区:使用ads、MDK


ads(停止更新)、MDK,是windows平台的编译器,功能较弱。


1)只适合个人或者小团队的开发,不适合于中型、大型团队的协作开发。


2)是收费软件。


002节_source insight代码查看工具的使用

编辑器


推荐使用windows平台的source insight和notepad。


source insight在查看代码、编辑代码等功能时非常好用。


source insight针对:c文件、h文件、ARM汇编文件


notepad针对:其他文件,如Makefile(简单理解为:指明了要编译哪些源文件、指定编译后的输出文件名)


source insight是收费软件,但是这个软件可以免费35天。 

版本:3.5


安装包:自己百度一下”source insight3.5”


source insight常用设置:


1.增加文件类型


 options-->documents options中,将c source file的文件过滤设置为*.c;*.h;*.S


2.新建项目(新建工程)


 project-->new project,然后将相应的文件添加到该项目中。


3.字体的设置(解决中文乱码)


 options-->documents options中,将screen fonts设置为:宋体、常规、12、GB2312.


使用alt+F12来调整字体的等宽。


4.说明一下source insight的窗口


项目窗口:指明该项目中有哪些文件。 

主窗口:显示当前打开文件的文件内容。 

符号窗口:显示了当前打开文件的函数名、结构体名、宏定义等等。 

上下文窗口:光标放在某个函数上(变量上、宏定义上),在下面的上下文窗口就可以看到相应的定义。


5.显示行号


 view-->line number


6.快速跳转到某一行


 工具栏中有一个go to line。


7.高亮关键词


光标放在关键词上,然后右键菜单—>highlight word


8.查看函数定义位置


光标放在函数上,然后右键菜单—>jump to defintion,或者ctrl + 鼠标左键。 

go back (alt + ,)回到上一次光标所在位置,或者使用工具栏中的向左箭头。 

go forward(alt + .)回到下一次光标所在位置,或者使用工具栏中的向右箭头。


9.查找


 右键菜单-->lookup reference,或者ctrl + / 。


003节_notepad编辑器和二进制文件查看工具

下面介绍两个免费的工具: 

文本编辑器工具[https://notepad-plus-plus.org/ Notepad++]和二进制查看工具[https://www.hhdsoftware.com/free-hex-editor Free Hex Editor Neo]。


Notepad++使用技巧:


按住Ctrl+鼠标滚轮,可以缩放文本内容大小;

查看c语言文件时,双击变量,即可在高亮整个文本中的该变量;

查看c语言文件时,光标放在任一括号处,即可高亮整个括号范围;

快捷键“Ctrl+F”,打开查找窗口,可搜索所需字符;

Free Hex Editor Neo使用技巧:


打开hex二进制文件,默认每行显示16个数,即0x00-0x0f;

在菜单栏的View->Offset可设置左边偏移的显示进制;

在菜单栏的View->Display As可设置当前数据的显示进制;

在菜单栏的View->Columns As可设置当前每行显示多少数据;

在菜单栏的View->Group By可设置当前数据显示的数据类型;

关键字:裸机  开发步骤  工具使用 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic492292.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:第006课 开发板熟悉与体验
下一篇:第008课 第1个ARM裸板程序及引申(点亮LED灯)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

第019课 I2C协议详解及裸机程序分析
第001节_I2C协议与EEPROMI2C协议I2C在硬件上的接法如下(图19-1)所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻(放一个上拉电阻的原因以后我们再说)。我们怎么传输数据,我们需要发数据从主设备发送到从设备上去,也需要把数据从从设备传送到主设备上去,数据涉及到双向传输。举个例子:体育老师:可以把球发给学生,也可以把球从学生中接过来。1.发球:a.老师说:注意了(start) b.老师对A学生说我要球发给你(地址)。 :: c.老师就把球发出去了(传输)。 :: d.A收到球之后,应该告诉老师一声(回应)。 :: e.老师说
发表于 2020-03-17
第019课 I2C协议详解及裸机程序分析
s3c6410 uart 裸机 轮询 非fifo
/* uart 非中断模式R,轮询,不用fifo*/ #include <stdio.h>#include "uart.h"#include "gpio.h"#include "sysc.h" #define UART0 ( ( volatile UART_REGS * ) (UART_BASE)) u32 Inp32(u32 xx){ return  xx;}   void GpioInit(){// 设置gpio ,使用uart0 u32 TEMP; TEMP = GPIO->rG
发表于 2020-03-09
s3c6410 裸机----时钟
目标:编一个 pwm 控制蜂鸣器 5秒叫,5秒shut up了解系统时钟:可以看到那个pwm受apb控制,而APB 的时钟是受,MPLL 控制的,这是我要关心的流程图,而每个register的的功能都可以在datasheet中找到,研究一下就可以了,可以发现那些那些值的设置都是顾定的,see(we recommended only the values in the PLL value recommendation table),所以推测 有初始化的时钟,只需获取pclk,然后分频就可以得到要的时钟频率了。·······请大牛们看到了,如果你们写了设置系统时钟的code,成功了 ,给我一分,我想学习一下。void SYSC_GetC
发表于 2020-03-09
s3c6410 裸机----时钟
intrupt 6410裸机中断
我之前研究了6410的io口中断,想对着datasheet写出中断程序,但是发现,我虽然对着datasheet可以知道他每个register的作用,但是它们之间的关联并不是很清楚,于是查了不少的资料。发现要编一个简单的按键控制io口的中断,其实在6410中很容易就实现了,大致可以这样:1.初始化io口的register:包括:gpioXcon,EINT0CON0,EINT0MASK,EINT0PEND2,初始化中断register: vicxINTENABLE , VIC0VECTADDR这个链接介绍裸机中断也不错:点击打开链接下面是我编写的中断控制 蜂鸣器的程序:建议一定要亲自动手写一下,写不出来再看示例,那样效果绝对不
发表于 2020-03-09
c语言多文件 6410 led裸机程序
// led4 gpk7 // led3 gpk6// led2 gpk5     // led1 gpk4   0 ,light //u32 rGPIOKCON0; //0x7f008800// u32 rGPIOKCON1; //0x7f008804// u32 rGPIOKDAT; //0x7f008808 //u32 rGPIOKPUD; //0x7f00880c  #include "def.h"#include "gpio.h"  #define led1o
发表于 2020-03-09
ARM-Linux开发步骤
拿到一块YC2440(s3c2440)的开发板,经过几天的学习,我对arm-linux系统开发步骤有了一些认识。就以开发这个开发板为例,arm-linux开发工作大概分4个部分1.硬件(hardware)2.引导加载器(bootloader)3.内核(kernel)4.文件系统(file system) 硬件我并不是硬件工程师,但我知道硬件的设计基本上是从性能,结构,可靠性等方面的需求方面来考虑。比如串口调试很常用,那么硬件就需要设计串口。在比如硬件需要接LCD,就必须提供LCD接口。bootloaderbootloader是什么?bootloader是一个引导程序,它最主要的功能是加载内核,所谓加载内核就是让内核代码
发表于 2019-12-27
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved