程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9812|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& {$ U0 r7 l$ E: s#include <linux/init.h>1 M- z& V1 g# }5 t
#include <linux/module.h>. M( k* D8 a# I6 `% d
#include <linux/kernel.h>
$ D, w+ {8 B5 `7 C2 p9 I#include <linux/types.h>" ~$ b+ f* \+ c. H; _
#include <linux/gpio.h>4 F1 z8 E8 k- W7 R
#include <linux/leds.h>" G" K. k+ y! z: D6 R
#include <linux/platform_device.h>2 e  t' ~. x" |( s7 a+ v3 V$ H

+ X1 `' w( f' z: g5 ?. T#include <asm/mach-types.h>
% N4 `/ X" u8 W" g9 x* \; @#include <asm/mach/arch.h>
5 {& e7 @# ?+ o" z+ Z, Y, Q#include <mach/da8xx.h>( o, C- h( y  C& n/ v, s, V0 O
#include <mach/mux.h>
1 m7 C( n; L( d# n0 q' m: V* v1 J- {2 t9 X- ]1 }) v1 L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- s' m. F* h4 H2 D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" {2 o" }2 ?$ @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- G3 |5 K9 \+ I' ?5 W6 ]! \7 z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) ?. r0 _8 l9 x* a; E
9 Q- F# @' y1 N/* assign the tl som board LED-GPIOs*/, L3 H$ n0 @  Z6 a( E8 ?* P
static const short da850_evm_tl_user_led_pins[] = {
1 \  F' N* {. D  H        /* These pins are definition at <mach/mux.h> file */
4 u5 f+ f! q, p        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' t: u; x# ^  c! z: N" S
        -17 B/ ~7 N7 |* ?. ~9 h
};
  p" ~3 t7 g- O: T' l
' l) S. `0 u4 G- bstatic struct gpio_led da850_evm_tl_leds[] = {
( v' I( A' ?  r  P" ?6 X        {
* q% d: ~1 ]- d, S3 p2 g4 _                .active_low = 0,2 B" W( R& d( e" K
                .gpio = DA850_USER_LED0,& Y8 g/ k8 r8 R1 m, ^8 x# H
                .name = "user_led0",* g) j! T' F6 y& B# T
                .default_trigger = "default-on",
! G% j! V$ J9 g) ^! S4 j% W        },
% J! C: h$ b" h' B2 M, y        {
+ I1 Y6 n3 o3 }                .active_low = 0,
, r/ K2 k4 o3 I  ?                .gpio = DA850_USER_LED1,
# @1 x6 U( ^, `2 W6 A5 @; M                .name = "user_led1",
5 e3 ]8 x( I, S                .default_trigger = "default-on",* V4 ]0 f+ o. G- K) X
        },/ g' Z) L( K2 V' K) O, y! {* h
        {
5 e1 M) p; P  o* j' A6 k8 K2 X                .active_low = 0,
- Z9 H3 G6 Z, Z7 @                .gpio = DA850_USER_LED2,
0 l) {9 j; y' R5 g4 b                .name = "user_led2",
! d' Z0 I; {; \) a2 {                .default_trigger = "default-on",' \) p) O; p/ H
        },) Q( I# X( ?- U: ]; e
        {' u. `5 H7 C5 t) O4 e
                .active_low = 0,$ Q6 I2 U. i4 c6 d+ ]  {
                .gpio = DA850_USER_LED3,: d9 A: W$ [: T, c/ U! ]
                .name = "user_led3",
$ d+ y* k7 b  {                .default_trigger = "default-on",
. ]" C5 I- `  I        },1 V! L4 d" M6 O. L. k
};1 G) p& a7 F/ o: V! q

8 b$ o$ d( J* _" {  d2 gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; j  M6 ^! A; d( a( J& c$ v
        .leds = da850_evm_tl_leds,
. r# g+ n- ]2 _( s7 f& `; a        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 c9 B& q; U* a: K6 N2 {/ G
};: f5 P0 U) f; F- L* r! k
$ y4 ~& U8 u6 V& a! B, V) h# _
static void led_dev_release(struct device *dev)8 W: k  \& W+ d
{
: x1 I4 h; T1 ]3 z};0 R4 q4 p( V8 `. a/ j; `' s6 R4 T
- y5 e3 Z+ t2 W) C+ v( L
static struct platform_device da850_evm_tl_leds_device = {9 Y6 f5 }% P" ~0 I  s
        .name                = "leds-gpio",
! W; d$ w( l5 F, ?% [& z2 P        .id                = 1,
4 k0 H$ A2 j; P& \        .dev = {
% P; y4 y4 I( N  k) Q0 X; e& L# ^; G+ J                .platform_data = &da850_evm_tl_leds_pdata,- f( e9 e. |# u& C
                .release = led_dev_release," w% n1 h7 ?6 Q- n
        }
# Y7 b# q( y8 d5 L6 Q6 h" _- v};
" l8 \$ N5 S7 F# {2 z
3 E( H$ }! E0 a) v( mstatic int __init led_platform_init(void)
" t9 b0 W" N; d  w  ~6 k{# s1 D1 f7 S7 X* H) g& J" h# P7 o
        int ret;
( Q; B: Z' H/ R6 v% C* R- K2 U$ w#if 0# l/ m" u) r$ p  B2 ]' r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  `9 Z' U; A7 N/ a
        if (ret)
: G0 c, t2 `2 K8 |  S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 {8 S7 b. T0 `' d/ z
                                "%d\n", ret);
9 c' _8 K( d6 q#endif( v$ {) e* U7 [1 d* R/ X
        ret = platform_device_register(&da850_evm_tl_leds_device);
: a+ u( o9 {  X, u) j" o" a! `5 _- E, B        if (ret)+ v+ e. x( \/ c1 O
                pr_warning("Could not register som GPIO expander LEDS");- L# m% e: z: T5 g$ y0 W
        else
- p" X8 X! k+ b  i0 O" h                printk(KERN_INFO "LED register sucessful!\n");6 Y1 J  J- P% E( v2 O

1 h+ ?7 T- U, F/ p4 Z7 T! @2 M        return ret;# w5 X$ e9 d1 x9 q; o- g
}
" s% h7 w+ F' r$ ~2 X. U$ s) |  V0 t! D2 {+ a% d- p
static void __exit led_platform_exit(void)
/ g$ R* [4 h* Z* G3 K{
5 M) J. J- F7 [. M0 b+ E3 V% o        platform_device_unregister(&da850_evm_tl_leds_device);" [( v" `9 Y+ b
+ \6 e: B9 g* i4 s5 z3 D
        printk(KERN_INFO "LED unregister!\n");
9 b6 j: i" ^0 V+ |, ?( Y( }}4 k# v6 y$ s, A# q- ^4 v' I( T
2 a/ s7 p& J1 K5 E; o. @. x
module_init(led_platform_init);) m& h5 s& K* s, \6 D9 n( Y' I
module_exit(led_platform_exit);) b1 t7 N7 f, }* z; {

) @  |( u2 S9 HMODULE_DESCRIPTION("Led platform driver");
* \. H1 z2 n" m5 P; x- RMODULE_AUTHOR("Tronlong");
( F4 F% f1 A9 m" J3 _+ [8 {, b, u9 dMODULE_LICENSE("GPL");
3 p" D/ ^# g' k- o: Z$ g
3 [& k0 v1 [' g5 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-2-26 15:27 , Processed in 0.040245 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表