程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! ?) b+ g0 g/ v# n#include <linux/init.h>. a- E2 J5 f# l6 R
#include <linux/module.h>1 d- S2 K6 g  j* I$ b
#include <linux/kernel.h>
6 ~1 ?1 D2 `2 d0 ?4 v0 z* P#include <linux/types.h>
6 ?; _3 X1 r) M( I  d( r3 ?#include <linux/gpio.h>
8 e: K' D$ P6 x4 f: I+ A# @#include <linux/leds.h>
: T) ?. n1 ?* |; P) V$ q& p6 U#include <linux/platform_device.h>1 S1 F0 N' U$ I  U

1 Q. f# c+ {: I1 C6 M& G, u1 A#include <asm/mach-types.h>
* }* }8 U7 d* S$ m3 Q$ i# q1 C#include <asm/mach/arch.h>8 v+ v' b5 a7 v/ ^7 w
#include <mach/da8xx.h>6 }- i! U$ L9 m8 ^" n
#include <mach/mux.h>/ k% y+ D  o& @, G" _$ P

4 D  l" ~, N7 {! M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): x0 j8 l8 B3 V# `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, K' y1 P9 j2 ?% N$ W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( a' z9 U/ I. ]; D% p9 F, B3 k0 J; o4 D
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" {- P& o! G9 y# Y/ x7 ?

, I% P/ M8 c& O- d0 y/* assign the tl som board LED-GPIOs*/
) Q( B* T. X4 C+ Y9 Rstatic const short da850_evm_tl_user_led_pins[] = {4 `" P  v) }2 R8 f
        /* These pins are definition at <mach/mux.h> file */4 Y6 A5 a! v: `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 ]( i* B! ^4 O9 i
        -16 N8 M, T# s. h( N: q
};/ p' m7 |3 Q5 G' W

& r, F6 J* q; a, gstatic struct gpio_led da850_evm_tl_leds[] = {% z* B8 A! |+ o# `0 b
        {* e4 |; A& k% K3 ?5 ?9 B" k/ i
                .active_low = 0,/ D. r$ F# \2 B) {# v
                .gpio = DA850_USER_LED0,: S6 \3 t4 M6 a: b
                .name = "user_led0",3 F; v  [/ d3 A: m
                .default_trigger = "default-on",
& U+ C# p! u* X" h5 t7 G        },5 }6 i. r$ O  L  j' U
        {
1 m% a$ J) R; L/ X* j: O                .active_low = 0,
/ o* b& b0 M  O' v  `9 x# ^( i                .gpio = DA850_USER_LED1,
* X0 p6 m8 Q3 ~                .name = "user_led1",
' q+ P- v- ]% b0 D7 U. {                .default_trigger = "default-on",* }$ c/ |$ ^8 }5 x& r+ m
        },8 Z/ T  y: W' X8 T
        {
; u, y. g- d9 X9 G; [0 @4 [$ b) T                .active_low = 0,
/ K% h: N! f) [$ v1 ]                .gpio = DA850_USER_LED2,
$ H3 @! t' a4 ]2 i& d6 X( c  M                .name = "user_led2",' o$ B& I- R/ B2 a. d0 t0 ]
                .default_trigger = "default-on",. X, X& p0 M! y
        },
  E( ?# B7 s$ U+ U        {/ Y/ k0 w4 p! P' O, b
                .active_low = 0,
4 I2 v7 ?- X! d                .gpio = DA850_USER_LED3,! I8 L8 w. P/ g( k% N- E
                .name = "user_led3",+ r' c" v* U. ]6 L, S: [+ @6 r) e
                .default_trigger = "default-on",/ c1 ?3 b1 [3 D) j" \$ o0 j& N
        },$ v1 a+ g' h" `4 c1 O9 N
};
2 L( x- U" n9 R
! f. c; n6 P) O2 X$ r) A6 B3 z+ Rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* t: ~( W) Q' w$ q( ?" G        .leds = da850_evm_tl_leds,
  U- q9 J0 r: |% t* G. [0 d        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, d0 m) d+ A  Q};! S- _1 {9 y3 L. I0 A8 Q

/ o. H. a, D  J! V* z' P# astatic void led_dev_release(struct device *dev)4 c+ ~3 v$ m2 D3 d2 x
{
5 ~* S7 I9 ~  {/ x* _5 ^5 `! u" y};  p  y1 k3 }7 j" O9 x. Q

) H, [2 `3 M, V6 s- `6 estatic struct platform_device da850_evm_tl_leds_device = {* L# F: [2 P$ v1 c* W, n
        .name                = "leds-gpio",
* Z$ ?5 F2 e/ l0 [1 M        .id                = 1,
& A$ {" ]$ G. u  v        .dev = {" Z! W# @( g2 @2 ?" O7 j4 k
                .platform_data = &da850_evm_tl_leds_pdata,
" a( R6 D9 ^: m% L4 L% x                .release = led_dev_release,0 R  o$ S$ p* Z7 c. E% `
        }
7 K9 |1 Q# a& o7 y# |  z4 ]};1 M' }. z9 o8 ?* ^- g
) h) A  d. j* q+ F$ ^
static int __init led_platform_init(void)
! J  e- y7 p7 n" g. i{, U& Q, x; Z; j6 o5 z
        int ret;3 W, A/ a6 b. t& H6 u
#if 05 y+ r& S( _  m) g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 j  _( p; D7 o0 Z        if (ret)! O0 g6 l9 K2 e0 S2 |' s3 p
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 Q4 H; V, f8 L4 @7 k                                "%d\n", ret);
  j9 K+ `6 M) K8 \/ h2 q) g#endif
! A' R2 ~# ^1 h0 R& d( `# g        ret = platform_device_register(&da850_evm_tl_leds_device);7 b3 K* O% {# K: R/ u# y
        if (ret)
* y0 k" G7 m$ m1 j. K) q& m                pr_warning("Could not register som GPIO expander LEDS");8 s8 G$ B! L3 \
        else
0 a+ U7 k6 N: t; y                printk(KERN_INFO "LED register sucessful!\n");. u6 S* q. h% Y7 b* S6 Q1 }

: S. k* U+ A) n, F3 l1 ~: i, q        return ret;- z4 X( K; J0 F# {$ Q( M
}
9 Q7 `1 c2 V5 C/ s6 U* Q7 T1 n- Q/ X( s7 T3 y" l
static void __exit led_platform_exit(void); D0 p9 I: P) m# `& }2 E* g
{* E1 v4 q8 B4 W' b8 b
        platform_device_unregister(&da850_evm_tl_leds_device);
& H7 Q: M+ k2 m* J
) K" y! d, [+ x4 k9 s3 d* t8 m. _) a3 h4 ?2 d        printk(KERN_INFO "LED unregister!\n");
6 n1 Z; T& x1 J, _9 D8 S}  i' d2 r3 N4 Z

+ M* G/ E! x1 x% E5 ^module_init(led_platform_init);$ K7 |4 o% h' Y7 ?7 p
module_exit(led_platform_exit);
2 f2 @) T/ m+ n( a4 @* [7 v6 A) _5 A! K5 A2 R( w9 E& G4 }
MODULE_DESCRIPTION("Led platform driver");
9 i* f% ]$ J7 }5 W3 xMODULE_AUTHOR("Tronlong");/ \: d+ u% n& S1 J% l6 I" A
MODULE_LICENSE("GPL");
* F0 n7 Q' ~6 d" |6 S. h7 L, W; @4 |/ t- z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-28 13:21 , Processed in 0.037921 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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