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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; f: @/ w, v5 e; b#include <linux/init.h>
+ }7 ^! {$ i# p" `2 \. s; c& s#include <linux/module.h>* A3 `+ x9 Y: x# S
#include <linux/kernel.h>) w- K5 p; ]9 `# j4 a
#include <linux/types.h># y+ E! F& H) {# \( W& O
#include <linux/gpio.h>
; e/ c' H2 j8 E3 d5 K2 t#include <linux/leds.h>1 H4 j0 A2 _3 h% p, S4 g
#include <linux/platform_device.h>( T  V4 f9 V# n# ~! p( f6 ]& T2 E: R
7 s! a" I4 {& w- c% d* c# y
#include <asm/mach-types.h># t' S5 }' G7 x2 u7 Y- r4 u
#include <asm/mach/arch.h>. ?& Y6 C' h8 {; o4 `& T0 b5 V1 t
#include <mach/da8xx.h>
$ H* {# B; W# Q1 [+ N9 U; I( e6 l#include <mach/mux.h>
8 j% F5 x! g, o& i2 F! u! j
7 t/ A% }( t. ~' Q0 P8 e! z; g#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; j) F; }9 _- M' h6 }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), M" u4 r* t8 x! g8 \  f0 S& N8 {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ P4 b0 ~: i) d1 F. O5 p2 {, `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! j" k4 Y9 [7 u. i% p0 P: Z3 Q- o2 k0 c
/* assign the tl som board LED-GPIOs*/
7 r6 e# n. y7 S5 V) d: b* Lstatic const short da850_evm_tl_user_led_pins[] = {2 U3 ~& r9 \' k2 W! e
        /* These pins are definition at <mach/mux.h> file */
: J8 d4 I. u4 Z1 e        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ B( j) C& P. }; e        -1
- X1 L; `$ b8 s( h' [1 q};! y9 a% ?: ]- q$ `* ]. g, z

4 p3 b4 R" Q# q/ lstatic struct gpio_led da850_evm_tl_leds[] = {
4 u8 T# {# C+ E, e        {
% [3 J  m8 O3 W9 |  E- l6 |) W, q/ A                .active_low = 0,
2 d1 u0 q- }/ p                .gpio = DA850_USER_LED0,# Y; q6 {! J& u# |3 ~
                .name = "user_led0",9 W$ X  G( e+ ^# p: Z
                .default_trigger = "default-on",
# W$ A- G) k5 U6 b        },% n+ w. }8 j3 Y" X, j, K/ T
        {
- j* F& u- O7 `1 L7 Z                .active_low = 0,
0 E. g& ?% q2 N, N                .gpio = DA850_USER_LED1,- x. p# l& b0 N) X
                .name = "user_led1",
& w4 s/ r8 J9 S. W/ d  K                .default_trigger = "default-on",) X6 j# v6 ]. d
        },
' r( |+ t0 n- Y* Y# e        {4 R8 S$ X2 w5 |& w
                .active_low = 0,- g- H$ t2 _0 o3 M% _6 K
                .gpio = DA850_USER_LED2,7 |5 h. _6 Z; y1 B4 o. t( u5 f
                .name = "user_led2",
8 m1 q! s1 Q7 R1 y                .default_trigger = "default-on",
5 x# ?$ Z0 z. S! C: A7 t        },3 H7 g. p, h4 ?6 @" V
        {1 r3 }- P0 @' F  V* j* X2 ~7 t
                .active_low = 0,+ l" W, q" M8 C8 N% z
                .gpio = DA850_USER_LED3,; @% h6 g0 N+ \- v% C7 Z6 Q, P
                .name = "user_led3",8 l' ]4 ?. p' J- j
                .default_trigger = "default-on",
2 T' e3 X' ^; ?! _; p        },
% s& M- m4 m7 _, o6 A+ w. h};
: w% z- w7 S- P0 r2 I) @4 u0 z+ `4 ~0 q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ D9 p: h5 [8 q
        .leds = da850_evm_tl_leds,
0 U7 t% E9 m) `' f# R& n+ x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) f7 l* x% x+ n/ _6 ~3 s- p8 h' X: `};; I# k* S+ C" H! ]$ u, \+ p( A+ x

" f2 h; J( w$ M/ A9 h9 pstatic void led_dev_release(struct device *dev)
3 @. h9 s7 ]8 a/ d; z- K$ j{
3 i" ]* D7 p% h* W/ {# h};9 ]% U+ p. w, o- D) p

* j5 i3 x3 R8 ]- R& L# bstatic struct platform_device da850_evm_tl_leds_device = {+ t- m$ D5 |% |  u; W, K  h* W
        .name                = "leds-gpio",
/ ]  ]% ]+ q+ t/ _4 s        .id                = 1,% F6 h& L$ ~% g6 I/ V/ }  f
        .dev = {# c" ?' \' J: o  M
                .platform_data = &da850_evm_tl_leds_pdata,+ m0 C3 B/ }" h
                .release = led_dev_release,
4 I7 K! g: c+ G: e, i        }
9 f  I$ |% M: E- a5 m};6 I4 j8 `4 @/ L/ ~4 |! {1 T4 Z
6 q# l6 L7 }# P$ w
static int __init led_platform_init(void)
4 R$ I$ |, V. z" J! z5 E" v7 M{( `8 O+ i, R) W! d) E4 X9 @
        int ret;( ]( }# P. M8 n
#if 0( ?( r0 }9 \/ O" {) r& O, S, S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ p" P3 s" T' E! r) u+ @( y        if (ret)! H* q8 j$ r5 r2 R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"" g7 X! }1 K2 |! n( Q, W; M: y
                                "%d\n", ret);. U" o9 C5 `$ Z
#endif
. v  ~6 A- q5 P        ret = platform_device_register(&da850_evm_tl_leds_device);( o* S; P/ K- V: u7 P7 u0 b/ G
        if (ret)
7 @& n0 K$ ?3 @' v9 {' e9 @2 M                pr_warning("Could not register som GPIO expander LEDS");+ E6 Z4 ^( L0 E- _! X4 A# h$ P
        else) ^* v. f! [; \9 y
                printk(KERN_INFO "LED register sucessful!\n");
0 X: u  h' Y( Z, Q8 A2 k9 q1 L  M
        return ret;
  L0 m# D, V; X9 W8 \}, B/ c: e$ F6 K1 ^
! u- h; x" n5 d5 ?& W
static void __exit led_platform_exit(void)
1 e  @: u5 w5 I" s& S5 u{
. h) K, B, J( n5 h% \        platform_device_unregister(&da850_evm_tl_leds_device);! C# Q* \- N0 _: |1 }3 B2 S' H

, n, N2 S9 P1 R/ j5 P        printk(KERN_INFO "LED unregister!\n");
0 L& b: s) U2 J; V& y  v! l}
( [( b+ n9 X- w- m! [* b* f+ @
$ Z+ Z  S: l! \' {9 g, v0 X7 Bmodule_init(led_platform_init);1 A3 U- M8 n$ _! p6 X9 g* L
module_exit(led_platform_exit);
! O. }( w1 e. W$ W+ _
0 J& H1 T% e$ ~- PMODULE_DESCRIPTION("Led platform driver");, T8 O* A' z. f  U6 w
MODULE_AUTHOR("Tronlong");
6 C  M: q4 s4 N- t: z# G5 S0 z9 sMODULE_LICENSE("GPL");
1 P; S- [2 ~  v+ }- p) V8 T
/ E' v3 l0 m0 |, O# ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 20:06 , Processed in 0.040258 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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