应用软件开发人员怎么快速了解基本嵌入式编程原理
发布时间:2010-06-14 17:45:37 文章来源:www.iduyao.cn 采编人员:星星草
应用软件开发人员如何快速了解基本嵌入式编程原理
本人纯软件出身,c,c++编程有一定了解,但是对底层内容从未接触过,最多就是小学过一下书本的8086汇编的东西,而且很基础。
最近一个小项目是嵌入式的,iar开发环境 arm的设备,没有操作系统,据说用J-link 辅助调试,一个有线通信设备,带有用户界面
本人从没用过这套东西,怎么能最快速的大概了解一下这种开发环境的概貌,因为有现成的代码,项目只是增加功能,而且是主要是应用层,
所以能够上手就好。
比如 大概的工作原理,如何调试,调试的大概原理(jlink原理),烧录,写入硬件,等等吧,或者哪里有类似即概括又明了的入门文章。
至少让我知道东西拿到手,哪个部分是干什么的,基本工作原理,有多少底层的内容是必须了解的等等
谢谢大家
------解决方案--------------------
都有现成代码了,就好办了,而且主要是应用层,只要去调用现成代码里的驱动就成了,用户界面通过液晶屏显示?屏幕的驱动代码应该也有了吧, 调试一般是通过串口打印信息来调试的,更深入的就是通过仿真器(jlink)来单步调试了,jlink是通过控制arm cpu来单步执行的,你可以看到每一步的汇编代码,烧录、写入硬件也是jlink通过控制cpu去往存储器(flash)里写数据。。
我是觉得通过串口打印调试信息就足够用了,但前提是串口已经初始化好了,可以用了
顺便问一下,您要不要招人,,我去你那应聘,我想做底层 哈哈哈
------解决方案--------------------
JLINK如何用,如果烧录程序,这些东西很多卖开发板的光盘资料里面会写。
或者网上百度下。搞过一次就会了。
主要是IAR,既然楼主会c/c++,那用起来IAR也没什么问题,c/c++的工具包括IDE全都大同小异吧。
IAR也可以看它的help文档,也有专门的书,不过觉得没什么必要。
------解决方案--------------------
pc上不要模拟器,我一般是用keil去调试arm程序,可以选择是在目标设备的flash上运行代码或者在目标设备的内存里运行代码, keil软件可以通过jlink查看目标设备各个寄存器的值
一般工程里都需要boot工程,最开始的代码用汇编写的,这些汇编代码完成cpu的初始化、频率设置,内存初始化,堆栈初始化,接下来才能运行C程序,还有一些硬件初始化,比如串口,才能通过串口打印调试信息
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
在驱动开发中出现 'struct' type redefinition 应该怎么办?? 大神们告诉小弟一下...
下面是我写的代码:
#pragma once
//**********...
-
大神们帮我看一下,我的代码错在什么地方? 加载成功,卸载就蓝屏了....
/*
*******************************************************...
-
sigma8653很罕见的问题
SOS!
sigma8653板子插上卡,上电后可以识别SD卡,然后软重启(reboot)就无法识别了!
奇怪的时,继续软重启一次又可...
-
Cancel自旋锁 起了什么作用?
发现IoCancelIrp 函数中
获取了Cancel自旋锁
设置了Irp->Cancel
调用了OnCancelIo函数
但是进入了On...
-
windows下 pnp设备的即插即用功能是怎么实现的?
看到 windows内核情景分析里说
加载驱动有三种方式 前两种是静态 分别是引导...
-
取消当前 IRP 执行的过程是怎样的?
#pragma code_seg("PAGE")
NTSTATUS MyWdmRead(PDEVICE_OBJECT DeviceObject,PIRP Irp)
{
...
-
vs2008中,link2001错误的问题,代码如下
vs2008中,link2001错误的问题,代码如下
#include <ntddk.h>
VOID OnUnload(IN PDRIVER_OBJ...
-
什么是内核缓冲区,用户缓冲区
比如网卡的内核缓冲区,那这个缓冲区是在pc内存还是在网卡的芯片上呢?
------解决方案---------------...
-
如果在一个函数中有提升IRQL的语句 是不是整个函数都不能放在分页内存中 ?
如果我在一个函数前使用了 #pragma code_seg("PAGE") ...
-
请教Linux下dm9000网卡驱动程序问题
应用程序网络编程是基于socket接口的,好像完全屏蔽了底层,不能像字符设备那样应用程序可以调用...