10大优享服务
62项会员特权

教您嵌入式软件开发过程中的一些常见问题的解决办法

发布时间:2021-12-01 11:11:47     阅读次数:12581次     评论数:0次
    随着中国互联网科技的发展,嵌入式软件因其独特的优势引起不少程序开发人员的注意,纷纷加入了嵌入式软件开发的大军。开发嵌入式软件过程中可能会遇到各种各样的问题,比如常见的有:Bootloader如何写入Flash,怎么知道哪段代码在哪个文件中,怎么知道程序执行到了哪里等等,今天我们就来分享这些嵌入式软件开发过程中常见问题的解决办法。
教您嵌入式软件开发过程中的一些常见问题的解决办法
    一、Bootloader如何写入Flash

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

    对于具有JTAG调试工具软件的处理器,可以使用如下思路:编写一段程序,这段程序能将位于SDRAM/SRAM固定地址中的数据写入Flash中。烧写时,首先,将这段软件下载到SDRAM中,然后通过调试软件将要写入Flash的数据下载到SDRAM/SRAM的某个固定地址开始的缓冲区,然后通过调试器开始执行程序,将数据写入Flash。

    除此以外,网络上还提供了很多专用的写Flash的工具,开发者可以根据自己的需要选用。

    二、什么是arm-elf-gcc?

    arm-elf-gcc是一个交叉C语言编译器。我们在PC平台下编译程序,编译器运行的处理器同生成的代码将要运行的处理器相同。但是,在PC机上编译ARM程序时,编译器运行的处理器同生成的代码运行的处理器不同,这种编译器叫做交叉编译器。其中的elf是指编译器生成的目标文件格式,其实我们平时用的单片机编译器如GCC—AVR等已是交叉编译器了。

    三、怎么知道哪段代码在哪个文件中

    嵌入式软件开发时经常需要使用在多个文件中搜索字符串,在windows平台下可以使用平台提供的多文件字符串搜索工具。在linux平台下,可以使用grep来搜索字符串。Grep的搜索功能十分强大,支持正则表达式搜索,熟练使用grep对于阅读系统和驱动程序代码是很有帮助的。

    四、系统是从哪个文件开始运行的

    对于Windows CE系统,一般从WINCE420PLATFORMYourPlatformKERNELHAL目录的某个汇编文件中。对于Linux系统版本不同会存在一定差异,以arm处理器为例,一般会在linux2.4.xarcharmkernel的head-armv.S中。

    五、怎么知道程序执行到了哪里

    可以在程序中插入如下代码来实现:printf(“I am here%s,%dn”,__FILE__,__LINE__),代码将打出printf语句所在的文件名和行号。

    上文介绍了五个嵌入式软件开发过程中可能会遇到的常见问题的解决办法,在开发过程中一定要注意这些问题,不断地学习总结,才能开发出更优质的系统。如果您有嵌入式软件开发的需要,可以注册一品威客网账号发布任务需求,这里有百万专业人才可以为您提供服务。另外,一品威客网上还有各式各样的任务,您可以选择自己感兴趣的参与。
本文地址:
来源:一品威客,转载须经版权人书面授权并注明来源

留言(0

↓展开留言

该攻略尚无留言记录