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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 N3 }; H* I2 C' Q0 Z+ u, @1 \3 i2 J#include <linux/init.h>
1 Q; V& H* A8 {) J* b#include <linux/module.h>
3 G; ?" p# E, F! P3 ]#include <linux/kernel.h>
6 D# l6 `- F/ e, b#include <linux/types.h>
, A9 b) ~  ~) k; Q2 B% ?3 Y#include <linux/gpio.h>$ v# \& ?. y9 Q
#include <linux/leds.h>) `3 Q, u, w; ~' w, K  n
#include <linux/platform_device.h>8 u! b) d" {2 n* o  f, H% k

" x7 `0 o2 d0 H, U) s" g7 C#include <asm/mach-types.h>, L, U" e1 |! O) U) O/ X2 g1 M" M
#include <asm/mach/arch.h>
# J" e% k/ e" L7 R! J#include <mach/da8xx.h>2 q1 Q& L/ C7 R: U- k% A
#include <mach/mux.h>: t9 W8 z! H- ^+ a
; V- l3 `% P1 q* Z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ t4 [; J2 ]! q7 ?8 n9 K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( z9 ^  W9 F3 C% `2 c9 [: p1 V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- Q% N) |% x; y' Y) T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( |- e3 N& S1 e" L% o5 s

2 T" e' s* V0 N, X7 X, m% {' e/* assign the tl som board LED-GPIOs*/
) M0 K  y8 {. I0 h1 I+ N- O& xstatic const short da850_evm_tl_user_led_pins[] = {
- t. y2 a. k. W. P$ v        /* These pins are definition at <mach/mux.h> file */
) Y7 B0 {1 P0 U  ?5 |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 V9 D( Q  O6 Z4 I        -1: a' O5 m4 W! u' K" R
};. g3 r( w$ r- @) G! W, [0 z$ L. Z5 ^
  R* K/ e  T6 l/ y. ^
static struct gpio_led da850_evm_tl_leds[] = {
; H7 O( _! C5 r% u        {6 B# _" x! g) L' j# M
                .active_low = 0,2 D/ L6 j) s' V
                .gpio = DA850_USER_LED0,
$ F. u+ A- N* R: C$ H& w& x) x                .name = "user_led0",
) P# \( j3 W0 E2 t1 @3 D' `                .default_trigger = "default-on",
5 @6 u4 B* `: ], t7 M& f# J        },
) X8 q9 L1 b: {! ]2 A% m" Z, N        {
- J+ T3 S) k( Y' ~& o                .active_low = 0,: {  i3 t6 _9 g! g4 v; A
                .gpio = DA850_USER_LED1,
; P  h# i5 v- X" O                .name = "user_led1",5 b8 R  K6 W+ {# r. T+ m
                .default_trigger = "default-on",( }; L" G! x* B5 m; F9 S4 t
        },6 R! V+ M1 v# [
        {
7 q- X& O* R' r" a, [1 I1 S" e) {+ Q                .active_low = 0,
, ^4 g& M6 I; [% b  H7 d                .gpio = DA850_USER_LED2,
6 F# T' o' C+ o3 {7 S                .name = "user_led2",
5 F* `" z1 L( F                .default_trigger = "default-on",: X) a# R" u3 e- v, q
        },
: `! ~% G0 M% l& `" o+ S: v2 ^        {8 u- R; U9 G; ]" X6 r
                .active_low = 0,
! j9 G9 H3 m* y, O% b. R+ G8 S9 g                .gpio = DA850_USER_LED3,- g: y6 f4 V0 u: Y/ ~2 |
                .name = "user_led3",: X% H' }6 Z; J5 T& m2 F
                .default_trigger = "default-on",
5 o* k. E$ Y: V( {        },9 d) l" @0 R- o4 C, C+ m, d
};
. ^6 o$ Z, {' |
2 ~: I: ]7 X1 r7 h- p8 Mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# @( {# ?# M1 `& d        .leds = da850_evm_tl_leds,
( _1 ?; F0 F& ]! n9 i# N        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 d6 Q7 C6 G8 E4 G% q* u" T};
4 p( f, B' w# j* \! }4 Y1 M/ i* V! L! k
static void led_dev_release(struct device *dev)2 d" d" \' v/ A- J+ T  X
{
$ l: r& c' H& e3 |};+ r/ B9 u6 M5 O0 b% v& L& \

0 A5 p0 q+ c% `8 O3 E' `3 h/ ~- F  xstatic struct platform_device da850_evm_tl_leds_device = {
8 l+ s% `$ c' P; g) L        .name                = "leds-gpio",& D0 P6 E. h6 `
        .id                = 1,
1 M, j+ P8 ?1 d/ `( M        .dev = {
# s0 W2 c% Z$ ]' n3 Y, m! c0 m                .platform_data = &da850_evm_tl_leds_pdata,
* H$ T, V! `  L- O8 i* h# L                .release = led_dev_release,
% a4 k6 z. V4 S* K$ a        }* t3 T' c8 t7 D
};
7 |4 }/ X0 ^- @$ Z1 y" s6 n
8 U$ k; e# {) |9 E) a8 ~static int __init led_platform_init(void)" M& F$ a* r) Z1 R% p+ Z( o
{) }0 e) e  ^& T0 E
        int ret;
1 i; t- v) P( G: t4 U#if 0* G4 R) W7 Q" x# ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* u+ q! n4 ~% z0 z0 X  C        if (ret)3 _* @9 U9 u2 {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- I$ _( _* [9 i
                                "%d\n", ret);
; O$ `+ |' W8 D$ A$ z#endif$ H  O4 i) w3 V
        ret = platform_device_register(&da850_evm_tl_leds_device);
1 w4 Q1 v* `1 j/ L+ A$ x) h; m' G        if (ret)9 b, b" ~5 N8 K  V" K1 K
                pr_warning("Could not register som GPIO expander LEDS");! R6 U0 ^% i6 a& Y9 Q5 I9 z3 N
        else
. ^0 ?* m% @- s0 f$ B# _                printk(KERN_INFO "LED register sucessful!\n");' G% E/ d0 p" `

9 `  v" D. D8 E- w* e8 O& u        return ret;
' R, C6 M  ]: r; a! [}
6 B3 ~( r: f# l; f2 X+ _
; |. ~0 l7 S" C3 [2 Ostatic void __exit led_platform_exit(void). H' r2 t; U% e! [( G
{1 v% ^" A& X, s$ F0 I( r, h' X* S
        platform_device_unregister(&da850_evm_tl_leds_device);
# ?; M  m0 F9 q* O5 ~. I0 t6 a# T( _2 W
        printk(KERN_INFO "LED unregister!\n");" H0 S/ p1 {  U% D9 ?" P
}
: }- \! g! X; p2 A- @4 Z4 T/ G! v" v) W/ I- o$ X
module_init(led_platform_init);
" [6 n4 h. n6 j3 L+ O' rmodule_exit(led_platform_exit);6 Y# e  x7 d' `! Y! r

( S5 W' o! }' C- }) n9 r4 IMODULE_DESCRIPTION("Led platform driver");
2 t3 U. G% x6 a) O0 VMODULE_AUTHOR("Tronlong");" k6 d2 B9 `/ b! w, W9 r3 I
MODULE_LICENSE("GPL");' L; P5 s( S4 N) h7 o# P
5 {5 o  [3 [) l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-27 02:36 , Processed in 0.042889 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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