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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 v1 @. v# s; Z: m# `#include <linux/init.h>
: N3 i7 K. C  _; |#include <linux/module.h>
; }+ I7 f9 u( D9 u  `7 z- h) u#include <linux/kernel.h>
! g: s" \2 X/ n1 x& y#include <linux/types.h>% U5 L3 r3 p8 d
#include <linux/gpio.h># W* |# w1 q: ]
#include <linux/leds.h>, g: L! i3 }3 T9 I9 ]& S" q
#include <linux/platform_device.h>; p- e2 L- j! ?% P/ u2 j% `6 o9 `  [
( U9 w  |2 g" O; z) X
#include <asm/mach-types.h>
1 w& g# I* _/ }9 O+ e#include <asm/mach/arch.h>, w( D: S( x/ ~, n. F/ D
#include <mach/da8xx.h>7 y3 N/ x/ G) z
#include <mach/mux.h>. T8 }1 H" G# I* P- j
$ L& Q1 h, Z" B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 F2 G' c. J, ^) v2 ~$ N& D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): f8 u5 ]7 e7 t; z& y% ?; y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; {1 q& ?  e! Z4 g7 S3 W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* Z- B" s; F7 x1 ^
- H* c) L( L3 @5 l: B& v9 \
/* assign the tl som board LED-GPIOs*/1 V3 L4 |( P8 K  [5 \
static const short da850_evm_tl_user_led_pins[] = {
0 V# h; U3 a( {. h# E' T6 t, k        /* These pins are definition at <mach/mux.h> file */6 H. v* Z- o: A1 I# N' d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* p; S; }. {/ @- L, H( ^+ G' R
        -1
( |# s2 r* H& {};+ i! s5 v$ a1 M8 Z0 P
9 R$ _# d2 m9 s  S
static struct gpio_led da850_evm_tl_leds[] = {
+ B# H" S  M3 m0 l: C        {9 V' i, ^- L9 j0 m! k$ H
                .active_low = 0,1 q! y# C6 k3 J0 ^8 v
                .gpio = DA850_USER_LED0,
8 [. F7 Q1 L5 M, d: G                .name = "user_led0",
( i* _+ i/ c7 r/ x6 W                .default_trigger = "default-on",
) v" J6 v, O6 u1 s4 l3 E; L; O( U$ }. ^        },% g" n6 Q: ^, j/ @- v
        {
3 J- U; |. e2 v$ q                .active_low = 0,
, w& p% t  ]& X3 `, m+ D$ E                .gpio = DA850_USER_LED1,8 ~, j/ G, T% Z4 C3 s4 ~' u+ n
                .name = "user_led1",* e9 K, T+ {3 V: m
                .default_trigger = "default-on",) y, d( i  Q0 R! u3 }
        }," I% e" W5 r3 a
        {4 F9 ]8 z: \& x
                .active_low = 0,
; T8 M- U% ~  l+ v, W/ M8 x2 b                .gpio = DA850_USER_LED2,
( X4 o" `5 v. o7 H/ y                .name = "user_led2",
! @; e/ f3 v6 Y5 H9 M- W                .default_trigger = "default-on",
5 M; d. M% t. J; o) \* Q  ]0 u        },
5 y6 E) i% R) l        {9 f1 f; c- t) L" R% N
                .active_low = 0,
$ {2 P0 y# s. }* A- p! v                .gpio = DA850_USER_LED3,
" z* I) q+ j& k1 h0 M3 N                .name = "user_led3",
+ J8 B, a) U: x. G4 E% Y- {                .default_trigger = "default-on",
! J8 A, E5 U; Y        },7 H+ f4 M$ D' T4 m
};0 {8 K) V/ n) L8 j7 W* H: [

' ?- B) M& k) r6 |3 V  dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' ]8 \; A# a  T. R0 |- _- l; ?        .leds = da850_evm_tl_leds,3 M4 N1 u8 i7 I+ U1 g4 g+ V9 a9 C3 o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 Q& O2 Q% D$ o, S
};3 j& q7 Q, j! P" j) Z

* u- h4 m! L2 G2 x* r& Bstatic void led_dev_release(struct device *dev)" Z  z$ X( L/ F/ S* I) E/ b+ B
{1 z* P& w( \  l) e8 ?4 A4 g
};
( C) S* s* p* K/ g% g+ C6 y# d9 {% d* }  T
static struct platform_device da850_evm_tl_leds_device = {/ M* n; E4 J( {8 M* l: C
        .name                = "leds-gpio",
9 c8 C  u# o8 j/ G        .id                = 1,
) O; o7 Z* d  e( v. J        .dev = {
  f, y: i0 @, `% E# A, K                .platform_data = &da850_evm_tl_leds_pdata,1 H7 ?/ N, D- i" p6 J
                .release = led_dev_release,# O8 v3 I8 g3 @0 @  |' o  j
        }
' N) b% T# {" B4 Y8 V};
. G* c* d0 m4 \# }% x/ _/ H$ K6 ^  d& L
static int __init led_platform_init(void)
( V# D$ t. x- D% n$ J" |5 T+ C- m9 |{8 {5 l6 C7 V$ \# ^' r- B' z! j4 y7 f
        int ret;
9 J4 ?" _1 [- ?  n. Z/ x7 e0 r#if 0* z) \4 J# B, J! g5 q1 x6 ~5 m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- B/ F. g* ~4 z8 r" N# @% G        if (ret), F1 A! r7 w; l$ P& Y3 K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 y- Z# N3 F: V" ?
                                "%d\n", ret);- i3 G2 P. t. D( d" k
#endif
, H/ e5 t5 \+ [" h4 g        ret = platform_device_register(&da850_evm_tl_leds_device);% B2 d5 g7 m. }2 ~
        if (ret)6 v5 ~; G+ S5 R- s
                pr_warning("Could not register som GPIO expander LEDS");
+ z6 q" q% x) \" F/ ?        else1 e7 D& K* h' ]8 y
                printk(KERN_INFO "LED register sucessful!\n");% u+ B5 z, d5 n, ?2 H. x
" {1 y  @, f" t+ P
        return ret;9 L; B5 g; s/ b3 p6 j
}
) Z- e! m  r( F) c- r* I% s3 |; H2 G2 }# ]6 f0 a
static void __exit led_platform_exit(void)
5 M" v* l/ i, ]6 F# W+ c. ]8 M{
! d/ ]& O! g* R/ y5 ]        platform_device_unregister(&da850_evm_tl_leds_device);1 b% Y5 j; Y, @% J" j# J

) U  ?( J4 S9 ?3 Z! e        printk(KERN_INFO "LED unregister!\n");
. R$ Z3 Q$ X+ K3 \+ ?* S% f}
( {- ?( c5 n* e$ M& c9 W- `  L; S( }3 ], X) q. W2 J& }
module_init(led_platform_init);
: {: ^) S5 ^' Q+ E0 r1 }module_exit(led_platform_exit);4 t6 A9 \, J  N2 o. D

2 x& a7 b9 \* v5 `& t! T5 Q8 @9 QMODULE_DESCRIPTION("Led platform driver");% p1 S6 K) y  W" J) t* |
MODULE_AUTHOR("Tronlong");' i% M/ ^! H2 K& @
MODULE_LICENSE("GPL");0 A; `$ v1 R! V" `; v7 ]6 Q0 b

" s- h) S- q( A9 j6 M: w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 10:37 , Processed in 0.043126 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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