bluedroid移植(中期总结)

中期总结:

 1. 一直以来都非常感谢林少导师可以给我这次机会,并且一直帮助我解决问题!没有丝毫的抱怨,尽心尽力!谢谢林少导师!谢谢CSDN提供的这次夏令营平台!

2.  目前项目完成情况:

目前从android 4.2上下载的bluedroid代码经过修改,已经可以在rt-thread2.0上成功编译了。

3.第一个月的体会与收获:

bluedroid是一个比较大的项目,代码量很大,里面有很多东西需要考虑,错误很多,同时收获也很多,尽管很艰难,但我会坚持下去!加油!

1)  第一周总结:

第一周看了rt-thread的编程指南,熟悉了rtt的基本编程。

a. rtt对象模型的实现:

封装:隐藏内部实现(采用static修辞把作用范围局限在一个文件的内部);

继承:代码复用(在声明子结构体中将第一个成员定义成父结构体,这样就可以在定义子结构体的变量中,通过强制类型转换,得到父结构体中的成员和方法);

多态:同一消息为不同的对象接受时可产生完全不同的行动(通过函数指针实现的).

 

b. 线程管理:

创建:rt_thread t  rt_thread_create ( const  char* name,  void  (*entry) (void* parameter),  void * parameter,  rt_uint32_t stack_size,  rt_uint8_t priority,  rt_uint32_t tick);

初始化:rt_err_t  rt_thread_init (struct  rt_thread * thread,  const char* name,  void  (*entry) (void* parameter), void * parameter,  void* stack start, rt_uint32_t stack size,  rt_uint8_t priority, rt_uint32_t tick);

删除:rt_err_t  rt_thread_delete (rt_thread_t thread);

脱离线程:rt_err_t  rt_thread_detach (rt_thread_t thread);

 

c. 线程间同步与通信:

关闭中断:

调度器上锁:

信号量:

互斥量:

事件:

邮箱:

消息队列:

d. I/O设备管理:

注册设备:rt_err_t  rt_device_register(rt_device_t  dev,  const char* name, rt_uint8_t flags);

初始化所有设备:rt_err_t  rt_device_init_all(void):

查找设备:rt_device_t  rt_device_find(const char* name);

打开设备:rt_err_t  rt_device_open (rt_device_t  dev,  rt_uint16_t  oflags);

关闭设备: rt_err_t  rt_device_close(rt_device_t dev);

……

设备驱动实现的步骤:

1. 实现RT-Thread中定义的设备公共接口,开始可以是空函数(返回类型是rt_err_t的可默认返回RT_EOK)

2. 根据自己的设备类型定义自己的私有数据域。特别是可以有多个相同设备的情况下,设备接口可以用同一套,不同的只是各自的数据域(例如寄存器基地址)

3. 按照RT-Thread的对象模型,扩展一个对象有两种方式:

(a) 定义自己的私有数据结构,然后赋值到RT-Thread设备控制块的private指针上。

(b) struct rt device结构中进行派生。

4. 根据设备的类型,注册到RT-Thread设备框架中。

2) 第二周总结:

使用Scons构建工程:

创建一个 SConstruct 文件:(SConstruct 是 scons 的配置文件,类似使用 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值