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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% q7 {! g" M! P7 B- F3 M) A0 `#include <linux/init.h>, M% ~' c5 P* V6 b$ e
#include <linux/module.h>8 g. x  I& P! X  W
#include <linux/kernel.h>
& `: i; T  {6 ^2 \9 c#include <linux/types.h>& _( B+ K2 z8 J+ w4 ~; p
#include <linux/gpio.h>
4 h' a; O$ B5 w' V& w- u#include <linux/leds.h>
" g; N4 R. b" r: G, ?# L4 E/ D#include <linux/platform_device.h>2 X9 i+ i7 @, Q  e1 q6 z+ V

$ A! b3 m1 ?& e#include <asm/mach-types.h>) b' ^0 s, U4 U! X% d* R1 A
#include <asm/mach/arch.h>
  C: m6 M4 X9 ]# S( B. C: Y2 n#include <mach/da8xx.h>
3 V: T, \# P4 v9 O( A#include <mach/mux.h>
, c; P0 c  @0 j( }4 j* @/ P# n8 ^! y/ j% Q( S) e2 x3 V1 U0 c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- O8 G1 q; r9 p' G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* {. O+ ?2 d- @5 V$ m$ v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 c, i% @& A/ s  `: z( X, [#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 R0 l& R. v1 T, B3 I" o0 _% {& A3 Y& P7 a( r& z6 Q3 m- Q
/* assign the tl som board LED-GPIOs*/
( Y# S+ k% \$ T  ]& r  E- Astatic const short da850_evm_tl_user_led_pins[] = {
; ~- z. U: U2 h3 S  s9 F  k% }        /* These pins are definition at <mach/mux.h> file */
* A& o) y* @) a# Y$ p9 D  W( i% j        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: B' H9 c, L( O/ A5 n        -1
( l5 H' P% q3 K$ p) z};. I5 U5 d" J+ g2 K1 Y
! B8 q0 H- r6 p5 c& t2 i
static struct gpio_led da850_evm_tl_leds[] = {4 o0 K  y/ N2 b: H$ r
        {/ J9 R) f, `$ U4 }/ \
                .active_low = 0,
4 {) X3 T, N0 o9 z                .gpio = DA850_USER_LED0,
( U+ O1 ~# d. r                .name = "user_led0",3 Z' T3 u/ A+ ]3 U
                .default_trigger = "default-on",- S* r" ^( H! l" ^! v9 P- i
        },
8 |$ I1 c  R1 ~. v9 A' M% W        {  q! ?0 j; I$ k( N
                .active_low = 0,& j$ J+ c7 J- ~( e
                .gpio = DA850_USER_LED1,+ o5 e2 n$ p8 a
                .name = "user_led1",1 n1 r& X8 |% M+ r. C% A8 V; |
                .default_trigger = "default-on",
& a. X( V9 W/ ^* q        },! H( J3 {' e; J8 q* t: D
        {' Q' w4 x2 H; d1 }' O, p# n
                .active_low = 0,! S+ n* j# ~1 _/ w' z
                .gpio = DA850_USER_LED2,
8 z. C, x+ {1 I; W- _                .name = "user_led2",
6 _: |% s- |" ^1 N( j; y# \                .default_trigger = "default-on",4 a5 @, g9 F3 _/ V0 j& h9 Y
        },
9 L0 s- `9 k1 m9 _1 E        {7 F* X) p0 e, @5 ]
                .active_low = 0,' s6 n9 m/ n+ b, U
                .gpio = DA850_USER_LED3,
: L- T7 T9 N  Q                .name = "user_led3",
1 Z# a0 e) k% W4 x                .default_trigger = "default-on",
; D2 ^3 g4 N: p& }        },
0 S* X% W! Y# n" s- Z5 M) g};
& X+ `! w  ]+ W+ Z1 D
. c& E# n6 ?+ Y; m+ W" u5 H5 H9 Hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! W; q& K7 u6 E. g4 C# |0 a        .leds = da850_evm_tl_leds,
! c+ I# T0 F" t8 j3 V: A" v" ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: w. E4 I2 p: @9 P};
- B1 x, V( N% _7 e+ F
! L  }/ x1 [3 x1 [/ t; Gstatic void led_dev_release(struct device *dev)8 |0 E  l0 a5 O1 H
{
$ s! g& l! J" g- N) N+ T- o};% I1 v) Z9 `  Q# ]) g
+ p- q3 D! o. |0 d+ ]6 m( z
static struct platform_device da850_evm_tl_leds_device = {2 Q! t' M( Y4 X. |" a  H4 j7 @
        .name                = "leds-gpio",6 u6 O# S: `  v" T
        .id                = 1,
+ v  T! q' _- h4 w9 X' y0 h' S/ p        .dev = {, d1 \) L5 j, W% B* B9 {1 w1 s/ P
                .platform_data = &da850_evm_tl_leds_pdata,$ D9 T6 e2 _0 _1 J( S& Y0 G* ]! G
                .release = led_dev_release,
* }2 W. s  q: m; K$ `$ ~        }& Y, h4 G6 A  [/ h2 D
};
, T' P0 }0 F$ B0 P9 {/ T
$ H/ B) w1 B( \( N- Bstatic int __init led_platform_init(void)
* B) }- P9 [8 Z8 N7 J* B$ a{2 V0 V4 w$ E, |  W3 N& O( R
        int ret;
" u0 y' a6 \/ P#if 0
$ E+ L0 i7 b. {6 A) k; r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 [0 F, J- @) ?
        if (ret)# I" M0 p$ m( v
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  A0 l: k5 }1 f/ {                                "%d\n", ret);
# Y* C$ c9 Y4 {8 ]) }! V- [#endif5 m, L: Z. S4 j+ M# s
        ret = platform_device_register(&da850_evm_tl_leds_device);1 Z8 S6 Z1 q8 j$ q
        if (ret)6 y1 p4 W4 m6 I% o
                pr_warning("Could not register som GPIO expander LEDS");6 G0 [. N: E6 l0 G$ v! V
        else# ?; a: j4 g9 Q" t1 y
                printk(KERN_INFO "LED register sucessful!\n");( j2 n) k3 y  h+ W* ^1 e
) ~6 V7 [/ i# P9 [: ~% M: u1 s* ~3 `
        return ret;
: ~) x% `% _- D/ W+ ~$ l& p}
1 w3 e# e- ~" F" p6 `. j+ ~& [  u' W
' Z$ o+ o$ x7 @3 V3 sstatic void __exit led_platform_exit(void)
$ q) v9 Q% S6 W, H$ B{
. ]7 q/ @3 H4 Z0 H' O8 X1 i        platform_device_unregister(&da850_evm_tl_leds_device);  o# O, P* }0 ^* q

% i, \' ?/ r0 v* g7 C        printk(KERN_INFO "LED unregister!\n");
3 I2 ~, w3 {) s# ^}- i) J. K. e' A* L; f

2 O  T: o; b2 U0 x9 _module_init(led_platform_init);
% }* }% T9 j& a0 U- smodule_exit(led_platform_exit);
9 e, q% L* k+ J7 f8 T! o: i/ e' X; O+ f
MODULE_DESCRIPTION("Led platform driver");
& `9 l/ g, f: C$ Y, h& U" U7 aMODULE_AUTHOR("Tronlong");
/ R* m3 U% B! DMODULE_LICENSE("GPL");
  _4 Z3 u+ r/ c# ^& \' j& R0 E; R$ m5 M; `/ E+ U3 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-28 16:53 , Processed in 0.037605 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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