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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! X6 M' N/ K  v& Z5 ^# u
#include <linux/init.h>
8 h8 \& g/ s. a3 ^#include <linux/module.h>
6 y  {; K* C' T1 H! T5 E0 W# N2 V#include <linux/kernel.h>
$ M' n( F0 R0 {4 Z' u' w#include <linux/types.h>
. u, x; r! L" i7 q" W#include <linux/gpio.h>9 x4 M- [* n" Y9 m; b0 _
#include <linux/leds.h>  N$ C; i# N1 \" Q. m; E/ d
#include <linux/platform_device.h>0 i! G$ J: f8 y$ r0 \+ |

: R  E5 Y8 l5 ]#include <asm/mach-types.h>) g7 k2 ~2 g; `2 a: r
#include <asm/mach/arch.h>
' u/ b  g( j9 s5 C( T$ W3 V#include <mach/da8xx.h>
5 R& B, o% E$ E) H! ~#include <mach/mux.h>' k+ \& K( U: L9 L1 i. A, |
' W; x+ ~4 f9 D7 P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, [$ ~" G" {0 ?' f3 S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ q- I" g3 _+ A# x
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' z7 d, X* K7 Q/ a: p1 O1 ]- [: |( \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; W/ x" y) g# e( Z' Z/ Q$ F* a. G" }- p8 g" o
/* assign the tl som board LED-GPIOs*/
+ S+ Y( }. y: d8 r) a% Cstatic const short da850_evm_tl_user_led_pins[] = {
6 [. f% ^& [, w3 G! O6 V        /* These pins are definition at <mach/mux.h> file */) A) d+ U3 R3 L9 R! v9 K! x1 b
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 }% c6 h* p9 G' G' F3 t6 \8 u, ?5 C. v
        -10 E( `% c0 q  G
};# P2 a) [# b2 g# S4 q
: [- c9 a! g3 X5 m
static struct gpio_led da850_evm_tl_leds[] = {" e$ _* o/ ^! Y+ P, s
        {6 p, v/ k0 w, `" D, w$ w. ~* f
                .active_low = 0,% U2 J. G6 _* `% W3 Z
                .gpio = DA850_USER_LED0,7 ~( M/ F; }/ Y$ \
                .name = "user_led0",
* J5 A0 A; o  A# ^% s                .default_trigger = "default-on",
; p+ M# d2 q# M) w# A* N8 A        },6 r  _. j) @# ^8 G
        {
" ]0 K  S9 e$ M* V( F  r* N                .active_low = 0,: ~4 T7 E" V: U  Q
                .gpio = DA850_USER_LED1,
% Z: `. |: T/ r' L7 y& P0 N6 \                .name = "user_led1",
* [- B) r  G3 _/ ?# k; T                .default_trigger = "default-on",
; p6 n4 W0 N; f% `/ E0 _: |$ J1 X. d        },$ h; H8 |" N) U4 n. Y
        {+ @& A8 O6 @- Q, Q, B2 p
                .active_low = 0,
! P) `8 F% ]8 S) d4 y, v  E                .gpio = DA850_USER_LED2,' `0 E# a7 O6 i5 ^) {" R/ x% k7 {; }
                .name = "user_led2",
6 w2 Y4 [8 W6 W% J/ q9 `4 a( U                .default_trigger = "default-on",! n. e: e, Y: ?6 K/ `
        },
  X& P; t- t% [- S. @) Z' J, {  q        {
" f9 U( D/ P" v3 Y" x                .active_low = 0,# Z: d  u' p! m- h9 e9 l5 g) }) E9 Z
                .gpio = DA850_USER_LED3,# ~* Q) T- T( F
                .name = "user_led3",
: K) q8 |" [# L; p" R$ \7 c                .default_trigger = "default-on",- r8 D" @% e. v) E: D# V  q
        },, l# y1 x3 v" [3 q
};% P5 Y- G! A6 q. `# L

1 B, c; M5 T5 Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) w/ i& p; n# a        .leds = da850_evm_tl_leds,
0 H9 M9 ^  p- F0 w2 s5 H        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& k; @! o+ s3 y- f# @! }
};& v* H0 A0 z5 U9 I. ?/ F9 o

- z( J' f+ E! i4 A: n; u  Estatic void led_dev_release(struct device *dev)6 K8 m+ \5 u' {3 _* ]- J+ s7 f# K
{* }. \1 ?7 J& w0 E
};' t$ `* V- j/ z8 Z, A  f
8 z+ Z' `: n4 G, |0 B: f
static struct platform_device da850_evm_tl_leds_device = {
, I6 A0 }; v- E7 l5 z        .name                = "leds-gpio",6 k5 c& [& H( w
        .id                = 1,
3 V6 [, H( p) K; D2 I  E        .dev = {2 m& t  c. I7 p+ w! W
                .platform_data = &da850_evm_tl_leds_pdata,# K/ Y. L; }, \" }' b  f
                .release = led_dev_release,
3 m6 g, v& w9 L        }
* G. }" I3 I6 {! f* b' _( s};
# D0 }! M5 G8 ^2 F! l9 g  v( v2 R1 q
static int __init led_platform_init(void)
% _) j+ u& n7 K7 u! u{
* J! i) I9 z( e' R/ {( A        int ret;" ^$ `  F6 C! R* ?
#if 0/ ?, E$ z8 K- T2 Q: ?, ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; a& ?: q) B  f! u
        if (ret)
5 s$ c5 r1 s7 ~5 O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 \& ~. \7 c- Z  t
                                "%d\n", ret);. l1 r3 W7 }/ h+ g
#endif
. O% Z9 p  r8 p4 \6 p- B        ret = platform_device_register(&da850_evm_tl_leds_device);
* o. C0 _+ o% E) P( n1 c! o        if (ret)
" J8 V" ?" \. R& a- ?                pr_warning("Could not register som GPIO expander LEDS");
% g) Y8 Z8 B' n. v, \        else! B1 N: K7 h7 T  H% ~
                printk(KERN_INFO "LED register sucessful!\n");
& S2 f, Z- X! x9 A' v( l" `/ D  c4 Q# H7 f) K
        return ret;
/ I0 w( x  D8 N! l, k0 l}
( H! P5 n  S9 R, l* f3 n
& ?1 j6 L* u. A7 Z0 W7 j* \static void __exit led_platform_exit(void): p8 M( o/ _/ m) f- t1 I7 r
{- G5 w4 [3 z0 D* z( c. A
        platform_device_unregister(&da850_evm_tl_leds_device);6 Z' `: |* |% B; S/ O
* @6 g7 U; |7 J3 ]7 l) Z3 {# z
        printk(KERN_INFO "LED unregister!\n");
* m; ~8 x7 ], x7 c' V1 H}: p! I. t. g6 W

, z( ^# E) V8 s* ]8 n6 dmodule_init(led_platform_init);
6 _$ `" Z9 P0 p( Z9 cmodule_exit(led_platform_exit);! k+ E7 G- b. d( V

, K, C1 F4 s  H$ aMODULE_DESCRIPTION("Led platform driver");8 O: u9 C6 p- B2 {5 w
MODULE_AUTHOR("Tronlong");
8 D' ~+ _2 V, ?4 H% t9 c4 KMODULE_LICENSE("GPL");
5 B0 a7 P+ b! }! f8 W( f* o' z. E; b) b/ n; G" q/ U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 08:38 , Processed in 0.048437 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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