- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.嵌入式开发过程
绝大多数Linux 软件开发都是以native 方式进行的,即本机(HOST)开发、调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(即板子上系统)运行开发工具和调试工具。通常的嵌入式系统的软件开发采用一种交叉编译调试的方式。交叉编译调试环境建立在宿主机(即一台PC 机)上,对应的开发板叫做目标板。
运行Linux 的PC【宿主机】开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行),然后把可执行文件下载到目标机上运行。调试时的方法很多,可以使用串口,以太网口等,具体使用哪种调试方法可以根据目标机处理器提供的支持作出选择。宿主机和目标板的处理器一般不相同,宿主机为Intel 处理器,而目标板如UP-CUP S2410 经典平台开发板为三星S3c2410.GNU 编译器提供这样的功能,在编译器编译时可以选择开发所需的宿主机和目标机从而建立开发环境。所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC 机作宿主开发机,对于嵌入式LINUX,宿主机上的操作系统一般要求为REDHAT LINUX。嵌入式开发通常要求宿主机配置有网络,支持NFS(为交叉开发时mount 所用)。然后要在宿主机上建立交叉编译调试的开发环境。环境的建立需要许多的软件模块协同工作,这将是一个比较繁杂的工作,但现在已通过博创嵌入式教学套件中光盘的安装而自动完成了。
2.多线程程序的优缺点
多线程程序作为一种多任务、并发的工作方式,有以下的优点:
1) 提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系
统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多线程技术,
将耗时长的操作(time consuming)置于一个新的线程,可以避免这种尴尬的情况。
2) 使多CPU 系统更加有效。操作系统会保证当线程数不大于CPU 数目时,不同的线程运行
于不同的CPU 上。
3) 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立
的运行部分,这样的程序会利于理解和修改。
LIBC 中的pthread 库提供了大量的API 函数,为用户编写应用程序提供支持
3主要的多线程API
在本程序的代码中大量的使用了线程函数,如pthread_cond_signal、
pthread_mutex_init、pthread_mutex_lock 等等,这些函数的作用是什么,在哪里定义的,
我们将在下面的内容中为大家做一个简单的介绍,并且为其中比较重要的函数做一些详细
的说明。
?? 线程创建函数:
int pthread_create (pthread_t * thread_id, __const pthread_attr_t * __attr,
void *(*__start_routine) (void *),void *__restrict __arg)
?? 获得父进程ID:
pthread_t pthread_self (void)
?? 测试两个线程号是否相同:
int pthread_equal (pthread_t __thread1, pthread_t __thread2)
?? 线程退出:
void pthread_exit (void *__retval)
?? 等待指定的线程结束:
int pthread_join (pthread_t __th, void **__thread_return)
?? 互斥量初始化:
pthread_mutex_init (pthread_mutex_t *,__const pthread_mutexattr_t *)
4.C编程
1、建立工作目录
[root@zxt smile]# mkdir hello
[root@zxt smile]# cd hello
2、编写程序源代码
在Linux下的文本编辑器有许多,常用的是vim和Xwindow界面下的gedit等,我们在开发过程中推荐使用vim,用户需要学习vim的操作方法,请参考相关书籍中的关于vim的操作指南。 Kdevelope、anjuta软件的界面与vc6.0 类似,使用它们对于熟悉windows环境下开发的用户更容易上手。
实际的hello.c源代码较简单,如下:
#include stdio.h
main()
{
printf(“hello world \n”);
}
我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:
[root@zxt hello]# vi h
您可能关注的文档
最近下载
- 从百草园到三味书屋.pdf VIP
- 电信诈骗主题教育PPT模板主题班会教育PPT课件模板.pptx VIP
- 医院护理人员职业健康保护制度.docx VIP
- 第4课 《直面挫折 积极应对》课件 - 中职高教版心理健康与职业生涯.ppt
- 《宠物健康与免疫》课件.ppt VIP
- 松香水安全技术说明书样本.doc VIP
- 在WindowsServer2008英文版64位服务器上安装金蝶K3V10.4数据库层方案.pdf VIP
- 中小学班级英语文化建设方案及实施.docx VIP
- 新疆维吾尔自治区乌鲁木齐市2024-2025学年九年级9月月考历史试题(原卷版).pdf VIP
- 第四章 不完全信息动态博弈四章 不完全信息动态博弈第四章 不完全信息动态博弈第四章 不完全信息动态博弈.ppt VIP
文档评论(0)