历史上的今天
返回首页

历史上的今天

今天是:2025年03月20日(星期四)

正在发生

2020年03月20日 | 第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可设置当前数据显示的数据类型;

推荐阅读

史海拾趣

Global Connector Technology公司的发展小趣事
安装位置不正确或连接线路错误,导致继电器无法正常检测到断相故障。
Condor公司的发展小趣事
电源系统中的电磁干扰或电压波动可能影响继电器的正常工作。
Cermetek Microelectronics公司的发展小趣事

在电子行业快速发展的背景下,Cermetek Microelectronics公司深知创新的重要性。公司不断加大对研发的投入,引进先进的研发设备和人才,持续推出具有创新性的微电子产品。这些新产品不仅具有更高的性能和更低的功耗,还更加符合市场需求,为公司带来了更多的商业机会。

Hitachi (Renesas )公司的发展小趣事

Cermetek Microelectronics公司在创立之初,便专注于微电子技术的研发与创新。创始人凭借在半导体领域的深厚背景,带领团队攻克了一系列技术难题,成功开发出具有高性能和稳定性的微电子产品。这些产品不仅满足了市场对微型化、高集成度的需求,更在多个关键领域实现了技术突破,为公司赢得了市场的初步认可。

ARRA Inc公司的发展小趣事

Cermetek Microelectronics公司在创立之初,便专注于微电子技术的研发与创新。创始人凭借在半导体领域的深厚背景,带领团队攻克了一系列技术难题,成功开发出具有高性能和稳定性的微电子产品。这些产品不仅满足了市场对微型化、高集成度的需求,更在多个关键领域实现了技术突破,为公司赢得了市场的初步认可。

DAVE Embedded Systems公司的发展小趣事

随着公司的发展,DAVE Embedded Systems不断投入研发力量,致力于技术创新和产品创新。他们基于最新技术(如多核ARM Cortex、PowerPC和X86)设计了一系列高端嵌入式系统模块,这些产品不仅满足了客户对性能的需求,还提供了更好的可靠性和可扩展性。此外,公司还积极开发基于Android和Windows平台的嵌入式系统模块,以满足不同客户的需求。

问答坊 | AI 解惑

请教非门的作用??

请教一下:信号从光耦接收出来,到达两个四个并联的非门再与两个非门串联来驱动三极管,其中这些非门的作用是为了增强驱动能力的作用吗? [ 本帖最后由 qmchen 于 2009-3-18 10:16 编辑 ]…

查看全部问答>

IGBT 损坏后结果情况

IGBT损坏后,有哪些结果情况?比如IGBT开路,但开路后IGBT的续流二极管还继续有用吗?…

查看全部问答>

波特率一高 串口传输就出錯

用串口收发数据,只要提高波特率,传输数据就出错,尤其是接收方,不知道是什么原因。 代码是C写的,查询方式。 比如红外用2400bps是好的,发01,02,03。。。20共20个数,接收都对,收到01,02,03,04,05,06一直到20. 但是改成4800bps之 ...…

查看全部问答>

"已失去对设备的远程连接。请验证设备连接并重新启动调试 "????

PDA上从电脑上pull入一个数据表,然后PDA自己存入数据时出现 \"已失去对设备的远程连接。请验证设备连接并重新启动调试 \",程序会自动退出,没有出现其它异常报告。 PDA重启程序后,再往刚才的数据表里存储数据一切正常。每次都是刚从电脑上pull入 ...…

查看全部问答>

cpu风扇转速

如何设置cpu风扇的转速呢,我的生音太大…

查看全部问答>

将要进入嵌入软件开发 的人

各位大哥们,我还是一个大一的学生,现在听说嵌入开发还可以,所以就有一点想向这一方面发展,但是现在在我面前的一个问题就是 我不知道要学那些东西,我也是一个计算机班的学生,这是不是有很大的优点. 所以就想问一下大哥们的应该出什么方向入手好一 ...…

查看全部问答>

tShell重定向到pty后,一直被PEND(内详)

将shell定向到2个pty上,分别是    数据写--> pty1 -->shell读取    数据读…

查看全部问答>

LPC2103匹配中断进不了

#include<LPC21xx.h> #define uint8  unsigned char#define uint32 unsigned intvoid Timer0_ISR(void) __attribute__ ((interrupt));uint8 num; void DelayNs(uint32 dly){  uint32 i;  for(;dly>0;dly--)  &nbs ...…

查看全部问答>

请教小数的处理,和小数的输出!

我AD采样的范围是0 - 2.5 V , 采样肯定是小数, 其类型应该是 float 型吧? 假如其采样点储存在float型数组内, 经过一系列运算后 如何使其转换成十进制数据 输出? 是有固定程序么? 比如将其转换成BCD码! 还请高手指点!…

查看全部问答>