教育宝

嵌入式系统开发过程中的常见问题与解决方法

学习经验 https://www.jiaoyubao.cn/ | 手机站

2021年04月01日 10:11:27

初学者一般都会遇到如何将程序写入处理器的问题。对于不同的处理器,可以采用不同的方法。例如Intel的Xscale处理器可以使用Intel公司提供的JFlash工具烧写。

  嵌入式系统开发过程中常见问题与解决方法
  嵌入式系统开发就是对于除了电脑之外的所有电子设备上操作系统的开发。下面是小编为大家搜索整理的关于嵌入式系统开发过程中常见问题与解决方法,欢迎参考学习,希望对大家有所帮助!
  1. Bootloader如何写入Flash ?
  初学者一般都会遇到如何将程序写入处理器的问题。对于不同的处理器,可以采用不同的方法。例如Intel的Xscale处理器可以使用Intel公司提供的JFlash工具烧写。对于具有JTAG调试工具软件的处理器,可以使用如下思路:编写一段程序,这段程序能将位于SDRAM/SRAM 固定地址中的数据写入Flash中。烧写时,首先,将这段软件下载到SDRAM 中,然后通过调试软件将要写入Flash的数据下载到SDRAM/SRAM的某个固定地址开始的缓冲区,然后通过调试器开始执行程序,将数据写入Flash。除此以外,网络上还提供了很多专用的写Flash的工具,开发者可以根据自己的需要选用。
  2.什么是arm-elf-gcc?
  arm-elf-gcc是一个交叉C语言编译器。我们在PC平台下编译程序,编译器运行的处理器同生成的代码将要运行的'处理器相同。但是,在PC机上编译ARM程序时,编译器运行的处理器同生成的代码运行的处理器不同,这种编译器叫做交叉编译器。其中的elf是指编译器生成的目标文件格式。(其实我们平时用的单片机编译器如GCC—AVR等已是交叉编译器了,我到现在才弄清楚什么是交叉编译器)
  3.走了哪条编译路径?
  系统程序和驱动程序往往包含很多的编译选项,很多选项都是在编译时通过命令行定义的,如果想知道编译的是那一段程序可以使用如下的方法:
  #ifdef PLAT_AAA
  #error Code for Platform AAA
  #else
  #error Code NOT for Platform AAA
  #endif
  这样在编译的时候就知道,编译的是哪一条路经了。对于支持#pragma message( “I am here”)的编译器也可使用#pragma message预编译指令。
  4.我怎么知道那段代码在那个文件中?
  系统编程中经常需要使用在多个文件中搜索字符串,在windows平台下可以使用平台提供的多文件字符串搜索工具。在linux平台下,可以使用grep来搜索字符串。Grep的搜索功能十分强大,支持正则表达式搜索,熟练使用grep对于阅读系统和驱动程序代码是很有帮助的。

  5. 系统是从那个文件开始运行的?
  对于Windows CE系统,一般从WINCE420PLATFORMYourPlatformKERNELHAL目录的某个汇编文件中。对于Linux系统版本不同会存在一定差异,以arm处理器为例,一般会在linux2.4.xarcharmkernel的head-armv.S中。
  6.程序执行到了那里?
  可以在程序中插入如下代码来实现
  printf( “I am here %s, %d”,__FILE__, __LINE__);
  代码将打出printf语句所在的文件名和行号。

如果大家通过上面的阅读,还想了解更多嵌入式开发培训相关信息,可以关注我的微信18560125702,我会为你匹配最适的学习方案,选课有问题,快来找学姐,嘻嘻。返回教育宝头条

嵌入式开发学习方法
嵌入式系统的编程方法

上一篇

嵌入式系统的编程方法

嵌入式系统是指什么系统

下一篇

嵌入式系统是指什么系统

【免责声明】本文仅代表作者本人观点,与教育宝无关。教育宝对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何保证。请读者仅作参考,特此声明!当您认为您的知识产权或其他合法权益被侵犯,或者页面信息有误需要纠正或者删除,请联系客服或致电400-601-2788。
系统猜您喜欢 点击进入频道
推荐资讯
  • 重庆嵌入式开发课程排名 重庆嵌入式开发课程怎么选

    重庆嵌入式开发课程怎么选?小编精心整理了重庆课程排名,在这里您可以看到重庆班的报价、课程介绍等信息,您还可以免费预约试听课程。

    2019年06月06日 14:53:03
  • 嵌入式软件开发的十大技巧

    函数或变量注释中包含如何使用它们的例子是很有用的。说应该如何使用是一回事,但展示如何使用会让人更清楚其用途。除了能够减少错误使用对象的机会外,还能给人一个更清晰的印象。

    2021年03月24日 11:32:12
  • 成为一名嵌入式Linux开发工程师需要学习哪些知识?

    嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域重要也是主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。

    2021年03月24日 14:26:50
  • 嵌入式开发岗位分析

    小到智能家电,手机,电子书,大到从航天飞机、载人飞船等等这些都有嵌入式系统和嵌入式技术的应用。可以说嵌入式技术无所不在。

    2021年04月01日 10:11:12
  • 嵌入式新手要知道的5个小窍门

    在微处理器出现之初,底层驱动已经很成熟了,那么,为什么不利用现有的成熟的解决方案呢?

    2021年04月01日 10:11:19