![Rank: 8](images/default/star_level3.gif) ![Rank: 8](images/default/star_level3.gif)
- UID
- 872238
|
mach-smdk2410.c:
在mach-smdk2410.c中,我们要定义以下几个内容
smdk2410_iodesc,描述了所有保留的设备io地址。这个描述符是我们移植一个特定目标板非常重要的地方
在这个板描述文件中还要定义
.phys_ram
.phys_io
.io_pg_offst
.boot_params
.map_io
.init_irq
.timer
map_io:
map_io里面需要实现设备io的初始化
在这里要用到smdk2410_iodesc描述符。该描述符是一个数组,其中每一项都描述了一个设备的IO映射
时钟pll的设置、uart的设置都可以在map_io中调用
init_irq:
在这个调用里面,关于中断的初始化将会被完成
* 清除中断pending寄存器
* 注册主要的中断处理程序
* 设置系统中的设备中断
timer:
timer是一个sys_timer类型的结构,它包含以下成员
-init 调用执行硬件相关的timer初始化
-offset 调用返回自从上次timer中断以来经过的微秒数
-resume 调用执行系统唤醒后的timer恢复操作,一般实现上和init里面的初始化一样
应用程序移植:
最理想情况下,程序可以不作更改,或仅仅打一些补丁,然后告诉编译环境按照目标环境要求编译即可
* busybox
* bash
* sysv init
依赖某些平台特性的应用程序移植起来往往难度更大
* 图形库
* 为速度进行优化的代码,比如编解码器
软件编程语言的跨平台性直接影响软件的可移植性。此外还有其他因素
软件协议/源代码的开放程度
应用程序移植常见问题:
1依赖软件造成移植性问题
* C库版本问题
* 图形库带来的问题
* 软件依赖某些服务带来问题
2网络应用在little-endian平台上的处理
* 网络传递数据是big-endian的
3软件依赖特定平台的特性
4平台的数据一致性模型差异 |
|