三星6410裸机程序开发1文章中,说到的是采用eclipse + windows安装版的专为ARM嵌入式处理器预编译的GNU工具组合来开发6410的裸机程序。由于遇到了中断问题,所以不得不切换开发环境。

幸运地是,不仅顺利切换到RVDS环境,而且还发现了三星官方6410_Test工程。这个工程提供了芯片大部分功能模块的裸机程序实现和测试用例程序。

阅读全文 »

 


在调试三星6410裸机程序时,遇到的一个很棘手的问题:在eclipse中怎么实现中断?这个问题的实质是:GCC中怎么声明ARM的中断处理函数。

这个问题折腾了很久,有点影响了项目的进度。后面改为RVDS开发环境才得以避开这个问题。现在回过头来再分析分析这个问题。刚好看到一篇博文,结合自己的理解,我想应该可以很好地阐释和解决这个问题。

阅读全文 »

 

6410 裸机程序

这段时间终于把短距离通信的无线接收模块弄完了。本来一两周时间就可以弄完,但前两周由于尝试采用eclipse开发环境,遇到了很多问题,尤其是6410中断的实现。这导致后期赶工,花了几个通宵才算搞定,弄得自己一身疲惫。

回过头想想,这个项目在很多方面都值得总结和吸取教训。避免以后接项目时类似情况再次发生。后续文章再介绍三星6410的裸机程序开发环境和方法。

阅读全文 »

 


网上关于S3C6410裸机程序开发都是基于RealView RVDS。也有一些是基于eclipse的,但都没有详细介绍在eclipse中如何建立S3C6410裸机程序工程。

尽管友善之臂提供的6410裸机程序示例使用了eclipse工程,然程序的编译却还是基于makefile的。那怎样建立6410的eclipse裸机程序工程呢?本文就此进行详细介绍。有了这个工程,可以简化裸机程序的开发过程,把精力专注于功能实现。

阅读全文 »

 


目前,在帮别人开发一个短距离通信的无线接收模块,需求很简单,本来用简单的51单片机就可以搞定。可是人家偏偏指定要使用500MHz以上的CPU,而且采用裸奔的方式。

当时面对这种奇葩的要求,瞬间无语。幸好,对方允许使用友善之臂的tiny6410核心板。这样下来,开发这个收发器模块也就变得简单了。就权当自己练习吧!

阅读全文 »

 


统计函数或某一段代码的运行时间在软件开发中常常遇到。透过运行时间可分析出函数或程序段的运行效率和性能,从而有针对性的对代码进行优化。

在unix环境中,常常用binutils(GNU二进制工具集)中的gprof工具来查看函数运行时间。但本文的重点是自己编写代码实现函数或程序段运行时间的统计。下面进行详细描述。

阅读全文 »

 


近日,阅读著名通讯半导体公司——博通公司(broadcom)的资料时,发现他们提供的linux系统中使用了一种名为ubi的文件系统。怀着好奇心,在网上搜索下ubi文件系统的资料。

网上关于ubi文件系统的介绍,大多数是华清远见刘洪涛老师所写的文章。该文章主要介绍了ubi文件系统产生的背景和用法。不过,本文将从一个认识的角度来了解ubi文件系统。

阅读全文 »

 


在网络编程中,UDP运用非常广泛。很多网络协议是基于UDP来实现的,如SNMP等。大家常常用到的局域网文件传输软件飞鸽传书也是基于UDP实现的。

本篇文章跟大家分享linux下UDP的使用和实现,主要介绍下sendto()和recvfrom()两个函数的使用,以及INADDR_ANY的说明,并在最后展示了一个经过自己测试可用的UDP Server和UDP Client的代码示例。

阅读全文 »

 


container_of,是linux内核中一个精妙绝伦的宏。上年在南京开发新产品应用程序时,一个同事借用linux的实现,在应用程序中实现了该宏。之前,曾经弄懂过它,许久未接触linux了,对它有点陌生了。只清楚记得它的作用就是:根据结构体成员得到该结构体指针。

在网上看了多篇关于container_of的解释,觉得还是华清远见程姚根讲得简单透彻。

阅读全文 »

 


等待队列在linux内核中有着举足轻重的作用,很多linux驱动都或多或少涉及到了等待队列。因此,对于linux内核及驱动开发者来说,掌握等待队列是必须课之一。 Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。它有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。 阅读全文 »

© 2012 velep.com | reille blog | 管理| 粤ICP备15065318号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha

无觅相关文章插件,快速提升流量