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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: y6 X$ }1 P" t% A( B! Z#include <linux/init.h>" I: ]' [* f" e
#include <linux/module.h>2 m( J( J, |; a) {
#include <linux/kernel.h>; M7 w5 X" o' `: A/ A
#include <linux/types.h>+ y" C& K# m. ]7 U" ^
#include <linux/gpio.h>' X3 }+ x- u6 b$ S  g
#include <linux/leds.h>
/ S, t  A5 A/ u5 i( g* w- p#include <linux/platform_device.h>
$ X+ f# w$ E  h6 L6 Q
0 i, V, @! D/ ], P#include <asm/mach-types.h>! ]) ]! v' i" W6 C' ?$ R; O
#include <asm/mach/arch.h>: L) Q) E5 ]/ x
#include <mach/da8xx.h>
- P6 x; ^+ [. l#include <mach/mux.h>
& h6 N' M  F1 W( M: a( C- D$ @/ r- h8 Q7 X
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), _& Q' z6 F, x4 e, ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 r5 T/ u( I$ ?- r3 |" w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  O$ F( O% c1 W2 D#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# T' N+ \; c. p6 q& T: n- p
: T, {: w* _; v4 c* i/* assign the tl som board LED-GPIOs*/. A; c: W; _) U5 V
static const short da850_evm_tl_user_led_pins[] = {
4 d$ i  z/ k7 W( D# M6 t        /* These pins are definition at <mach/mux.h> file */& n: o: d" ]8 p0 o, }
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) A' L+ M4 P% h: T: @# N        -1
% ~! k& K# I) o6 k: w' V};& \5 u3 `: u3 z: R2 T

/ z% V9 r/ F1 R7 G) j: Qstatic struct gpio_led da850_evm_tl_leds[] = {
% {$ m! ]: W- m9 f. ?+ L  `1 m        {+ O" z3 I  q$ m' y0 P4 y
                .active_low = 0," U, W3 P! |% `$ w$ C4 W# L. n
                .gpio = DA850_USER_LED0,
, n3 M/ y" S: r( q1 w                .name = "user_led0",
% A/ I" F" m( r: Q3 @                .default_trigger = "default-on",' w# v! }8 d8 v* I5 v: e
        },/ ]$ M6 k4 T2 A8 C# J% h, P; m
        {/ C6 ^* b# p9 ^+ }  H
                .active_low = 0,! X" O5 F5 w! q' q9 v4 k" l' m4 a: ^0 S
                .gpio = DA850_USER_LED1,
+ W; ^' m3 z( x" t6 H8 Y4 i% ~                .name = "user_led1",
8 Y4 E, V+ r. S) n                .default_trigger = "default-on",
. _  M' K1 ~7 l        },
! D$ w- `0 }" l8 x0 T1 M        {
/ h( q+ g5 A3 O                .active_low = 0,
  ]& g/ M9 V. `# }                .gpio = DA850_USER_LED2,
, m' G* M% N5 q/ g4 {0 |                .name = "user_led2",
! c/ m: l7 Y3 E6 N                .default_trigger = "default-on",2 G- E8 _% o* W& `" j7 G
        },
8 E& C" r" \. k        {$ E5 u% V/ K7 U8 h7 o% f4 O
                .active_low = 0,
+ I, t8 N" E; ^                .gpio = DA850_USER_LED3,
8 x* D# G( `4 @$ F1 y                .name = "user_led3",1 J$ K: t, W, m
                .default_trigger = "default-on",
& w2 R  c( N& c  z! m0 P' h9 H& q        }," A( |7 ^% z: X# ^+ O
};- C! v" g8 A! P. t
; ?2 d8 ]2 ]# f, P, i- [. l; D; z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, Y, W# r# v4 W5 `: [        .leds = da850_evm_tl_leds,
  b; A8 ~$ u* w9 L* w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& J! {$ j8 T( o" g9 i5 E};7 A9 v8 F( o5 N$ S9 K( O; G! G5 Q! A

6 U5 t+ }) }3 f4 V# S5 x" ^4 }) Astatic void led_dev_release(struct device *dev)
" g1 X0 t( t) i; Y1 [$ Q- m  F- b3 E{
7 r2 g" U" ~4 \( z2 r};/ w, c4 G% E2 \0 u
, _0 y* \7 e% ~% O+ g1 K
static struct platform_device da850_evm_tl_leds_device = {1 F, G- [; u( Q* x" w' c
        .name                = "leds-gpio",$ v( y6 y- Y/ B: a
        .id                = 1,9 |& _" K  t0 v/ ]5 }9 D% a
        .dev = {/ }; z% |5 v% i- j
                .platform_data = &da850_evm_tl_leds_pdata,
3 s7 u$ z) M- t+ _# Q  M8 j0 u                .release = led_dev_release,
* r5 I. ?$ H+ Y- y4 }: `9 I        }
8 Z7 P  Z* W& b2 E  [6 a};
4 h7 I1 x" U: M+ ?5 S! m4 P! y; U' ~# t# _' W; k6 u
static int __init led_platform_init(void)
$ d' F" F4 W  Z0 J# q{
3 q/ a# i5 W3 U" c: [+ X        int ret;7 V# c8 e/ U' o
#if 03 q+ I/ r$ V/ b  I) P: l1 m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. q$ X& ^! y) m2 {- z# Q: O
        if (ret)+ f* G: g5 v/ R6 p) B& w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 [% p9 G( j: _% h6 w0 ?                                "%d\n", ret);
' a4 S% G, l! p#endif
. T7 z2 x8 S4 U  P+ K! m% k' Q! Z        ret = platform_device_register(&da850_evm_tl_leds_device);
& F% T- c1 H3 Z  L5 `8 [* x' _        if (ret)
; q, U5 N) f! O& B4 j9 U/ U                pr_warning("Could not register som GPIO expander LEDS");0 X% L$ e& s( K; T+ r! X& K3 u
        else
4 U5 D$ ~; t: C& b! `8 N                printk(KERN_INFO "LED register sucessful!\n");* |! X; g" k1 @' s0 w1 @

; W0 s. f8 B+ w& D3 i0 D' b        return ret;' X+ X1 ?2 K$ R5 j4 c- S
}
; g9 S( F  B  v6 v! c+ E: c4 t0 C4 c0 ]" Y' j$ {4 Q
static void __exit led_platform_exit(void)
$ x: A. K$ [2 m2 ?3 F{
: y+ b. P8 _: S3 C; J1 o6 j( ]% @$ O        platform_device_unregister(&da850_evm_tl_leds_device);. r& Z: Y( E: T4 _8 q! J

+ R. n* D5 C  G: j        printk(KERN_INFO "LED unregister!\n");; V0 ~4 M3 G' }' T7 k
}
+ M8 V( Y! }& _3 V1 k' u! ~9 k$ _3 o5 H% M' B
module_init(led_platform_init);2 \! J1 h7 d% H- q6 e+ Y% I6 m4 h
module_exit(led_platform_exit);
5 m' v* O" F  b, J. u* X7 M  v3 s  H# I! `
MODULE_DESCRIPTION("Led platform driver");" [4 m7 o2 v4 r9 g* o
MODULE_AUTHOR("Tronlong");) \) p* R8 J) i, S$ m
MODULE_LICENSE("GPL");
/ R& J5 s6 I# {) k% _3 W' g3 q; r6 p
9 n1 d. G' b' M6 m7 S9 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-7 15:07 , Processed in 0.055047 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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