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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 p- k3 `- A3 c" O#include <linux/init.h>
& h& ^& \' G$ E3 u9 t$ Y! o#include <linux/module.h>; m& c2 d6 N" [+ p/ L; u
#include <linux/kernel.h>0 P0 O6 U6 B0 H5 X# e
#include <linux/types.h>
$ _0 U6 a0 }  f#include <linux/gpio.h>
- Q! @$ a- y0 C4 K+ F#include <linux/leds.h>
/ A( R" Y% j5 `% i* ]8 F. Z#include <linux/platform_device.h>
1 z5 u& R& X. I" G' h# T% _5 {( ]* g, o. M: Z, e, e# @( P3 u  C
#include <asm/mach-types.h>
8 ?1 u2 P0 W$ [' E+ Z8 e' f  O) ?#include <asm/mach/arch.h>2 o4 ?4 M2 ]; I% v' v, [3 k8 }( P; H
#include <mach/da8xx.h>
( H, p' }2 F- \, r# H$ v, ]. S: J#include <mach/mux.h>
. ?0 ?0 P$ `* L$ K& \) y
2 M4 F0 F& a/ @# k- T+ u% ?#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 Y. A" @+ z  \$ ^9 P: p#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 L3 }* t, }: j8 w; }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" i6 v+ r" D+ r+ z6 f4 U7 t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 K5 V9 g; S9 D3 ^

: i/ r3 Z( b  _4 {2 G/* assign the tl som board LED-GPIOs*/
8 [. {) w6 l7 _. D$ e/ j1 q5 `! |static const short da850_evm_tl_user_led_pins[] = {: Q5 B3 p  n- I
        /* These pins are definition at <mach/mux.h> file */
* L* k2 ], G7 \( z3 H- j' D; _        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 _7 P. @5 o' S% C2 [! h  V$ ~
        -1
: F5 c4 t& n6 B0 M9 v& E};
3 w9 v% r0 P) ~+ a- b* q
6 ~. J5 G  C6 o  ?, J0 ystatic struct gpio_led da850_evm_tl_leds[] = {( r8 X9 y! O, q6 X$ b
        {! F- D. h: l3 z9 S
                .active_low = 0,  {$ z& n5 K4 W
                .gpio = DA850_USER_LED0,
  _6 B3 T3 d7 F                .name = "user_led0",
% R7 K/ j. T; k% r" |                .default_trigger = "default-on",* ?$ l+ g: o; W0 |
        },
7 W( c/ w. g) e: m        {6 V1 J) j+ ?2 P1 Y
                .active_low = 0,
2 N" [! q5 Z. w! Y2 `                .gpio = DA850_USER_LED1,- u: }3 L% P: b2 u$ }6 S
                .name = "user_led1",
' ~+ T  {2 N% o' d; \) A                .default_trigger = "default-on",- L+ Y+ ~2 D7 j- b% c: p7 ?
        },
2 g# w$ A; o# \, L! I! @        {
* ~( [) U. f9 R! q                .active_low = 0,. i2 k" N* F' z* X( ^; D
                .gpio = DA850_USER_LED2,
' H" ]8 ~/ v/ u) G* B: p                .name = "user_led2",
$ E. e8 c; \! g0 n- }) r6 f                .default_trigger = "default-on",
! n2 m: @9 d4 k$ c9 _5 r        },
* v9 e3 H) Z) c) r& [        {
3 J3 c: Y- A. {+ ~" C                .active_low = 0,
8 K7 p4 F6 A; D3 H4 D                .gpio = DA850_USER_LED3,$ ]$ b& ^! H6 k
                .name = "user_led3",4 E4 n- V+ r* I% E! D
                .default_trigger = "default-on",
' K4 p0 i5 k: s1 r  t        },
9 I# L1 R2 h' ^0 G7 p};+ i5 H8 j7 R" J% s/ X+ s/ C

& ~1 A4 [4 F2 C# ^, b; f# \static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* x' _: B+ J: b( j+ m- i: ^        .leds = da850_evm_tl_leds,
" t0 B# [+ w4 M% ]0 v6 ~2 O, T        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- A% r. o: Z3 [6 `
};
8 J8 Z3 N  e" d+ R' C. D# `8 n. L, U: L) C7 M" v' y# m2 z
static void led_dev_release(struct device *dev)7 T) Z$ L9 r. B- _& N+ m
{" y1 `7 ]0 n/ B
};# J: \7 E$ E7 m8 ?9 c" @3 F

" M* `; C. s( o: s- r1 Tstatic struct platform_device da850_evm_tl_leds_device = {
+ f# O6 K: F& L' ^  B- G7 U& u        .name                = "leds-gpio",
( A5 h# g. b( d. P        .id                = 1,
/ X; a, X" p6 I        .dev = {
% J' f+ k8 b" \1 R' x5 g& S) Y                .platform_data = &da850_evm_tl_leds_pdata,$ {! p2 ~: |+ g& }  n1 ^1 i
                .release = led_dev_release,$ p8 Y! N2 b0 R) E. o2 i
        }
" O" F. r, [7 \7 R% ]- \};( ^7 y1 K0 }* A" u4 I& P

+ R$ k4 f, h8 v/ h* l0 j8 Z) Nstatic int __init led_platform_init(void)- a$ Z; o4 e2 V1 X8 `
{& p5 @% \8 r8 R. ~! s0 M" F1 Q
        int ret;  T0 S4 a% V0 M: ]
#if 07 b+ g% D; B; |0 v/ G$ r% m# x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* x5 W. n) r3 d$ B  {) H% L
        if (ret)$ w2 f% \; t$ M" [+ X5 T0 m7 n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- R# `+ D; W& O                                "%d\n", ret);
) A' j8 p( c. ?; K( v#endif
# d+ V* @; F( Q6 x! ^. a8 c+ {        ret = platform_device_register(&da850_evm_tl_leds_device);" z( H8 P) s# l
        if (ret)4 f9 }! r" `+ _  Q: g) D( A/ {5 n
                pr_warning("Could not register som GPIO expander LEDS");! ~" r% q2 u# i7 R* J8 w- Z0 m
        else
% ~9 F$ D3 w  {                printk(KERN_INFO "LED register sucessful!\n");/ Z5 O0 H; R/ y9 n

, I, k4 M, f3 u8 b$ C+ s" |        return ret;
7 j9 H: |' ]; l* N  L! @, m}/ `7 e6 ~3 A% O# ?/ @  l$ ?
5 w+ k4 U* f2 c
static void __exit led_platform_exit(void)
' B/ h: f# [; Q. J; j2 ~$ `& p{3 N; Y$ j8 N. O! ^8 @1 X" |2 h
        platform_device_unregister(&da850_evm_tl_leds_device);& W, c8 r& ]8 `" H

- W  N, w! \  e; X: c3 \: W& a+ u        printk(KERN_INFO "LED unregister!\n");
3 {& L; f1 @$ q0 r: h9 b}1 e2 R5 w2 I" N+ X) C, \, h
, B; \$ g" b& P0 Q
module_init(led_platform_init);
5 }. v) X: L7 O; ?module_exit(led_platform_exit);6 }9 z: w* G( ?" ?0 K3 @! V( D

5 N& R9 y: X8 O0 n( oMODULE_DESCRIPTION("Led platform driver");
/ O: m& g* n9 B! Q( t* }3 T% V  m) ?MODULE_AUTHOR("Tronlong");! ~% ?! c3 C. w0 `6 O
MODULE_LICENSE("GPL");
6 n+ F; r. `* r8 {$ R
: ^2 ^! {' b+ }8 b+ g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-19 10:37 , Processed in 0.038417 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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