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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" i- W8 C9 s) b' C  T- b( H- }% g#include <linux/init.h>
& W1 V) S" P9 `4 _6 Z  G#include <linux/module.h>0 q4 U4 ~$ Z0 g/ X6 M. i: R+ \& }
#include <linux/kernel.h>
0 c# \+ T7 m( D+ [8 O8 O#include <linux/types.h>: k- a/ l5 P' H( g' ^4 K
#include <linux/gpio.h>
/ ^4 b. }* L+ h; `" o( i#include <linux/leds.h>
! H4 g& j' Z$ l" N& p#include <linux/platform_device.h>
& [1 X. t5 {7 f/ u( C  N( f+ `; l( K0 F/ y; [$ Q
#include <asm/mach-types.h>
% f* o6 P9 J" O0 B1 G5 q#include <asm/mach/arch.h>
$ z. R- M! m$ {3 @) B6 z' R#include <mach/da8xx.h>) ]* c/ j& h1 z% d9 ~/ f) _4 L5 ~
#include <mach/mux.h>  Z3 g  w0 u# F
" _. }- c  G4 U5 o1 K: T3 D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 h7 z! m+ M1 j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ ~3 L' {% x/ \9 ?! K/ R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: y# B& n( }1 j9 a#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 }# l# g# G" c. I3 M
- x1 ^+ X: m( ~' z8 H  q% I/ g5 I
/* assign the tl som board LED-GPIOs*/
( B: v" v7 P/ S3 r6 s2 r$ |' xstatic const short da850_evm_tl_user_led_pins[] = {/ [/ |5 |4 |3 H+ Q, O' P5 S& P# Y' Y
        /* These pins are definition at <mach/mux.h> file */" P  q7 B) B' Q8 u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 L# e1 f0 z% [  u  {: P8 ]
        -17 H: L  _. w4 _6 C" G0 ?# k$ Z
};
# t3 t' Q- N+ z5 ?2 S$ k8 X# X, Y+ n
static struct gpio_led da850_evm_tl_leds[] = {6 }: ~/ z+ }; e$ W$ `8 W0 {3 S
        {
; T/ _, W% M/ Z; S" i                .active_low = 0,
6 ^/ ]* w" p" L& c8 w7 R                .gpio = DA850_USER_LED0,; K# S# P5 d6 q: z
                .name = "user_led0",. R2 ?% Q: n  w6 l
                .default_trigger = "default-on",
+ Q  q- O1 C- T' H& n" U: S        },; G8 t+ g' V- F3 q
        {
  |+ @: O0 n7 p                .active_low = 0,
  S- e8 ~# R0 S                .gpio = DA850_USER_LED1,
* x7 t3 w3 Y8 y; J/ i                .name = "user_led1",# Z! M* H7 n% S* C
                .default_trigger = "default-on",
' u# J( P! Q& ?; r9 i        },5 C% v/ h5 G6 P) k2 t6 Z6 r
        {% Z, E0 t0 A2 r; n" h
                .active_low = 0,, ?* }+ W- O! H& j6 g
                .gpio = DA850_USER_LED2,( ~* y9 y& S7 E3 B2 s  Y
                .name = "user_led2",3 |9 n2 G8 Y# J: s: P& K
                .default_trigger = "default-on",
9 I6 v1 L# g, t1 _/ F        },
' b) }" y! N  g        {
' P; e3 x$ `4 n/ x$ k2 b                .active_low = 0,
0 ~6 _: `/ I- k" N. s                .gpio = DA850_USER_LED3,: j# n9 Q$ Z: p1 f+ C0 K" Y
                .name = "user_led3",  m! x( F) ~/ d! p
                .default_trigger = "default-on",
- E# S5 i" e. q4 ^8 d- ~' V        },
4 i6 D$ h. m; a7 s};/ ^, G$ r9 U1 M) v( _' f# _3 m
7 w, X5 f' Y0 y% o
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: H* A: F" o9 s" z        .leds = da850_evm_tl_leds,
, k9 D/ h; m8 s# ?        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( t, p0 [- E: H: n" z$ p
};
3 |5 t( ^1 A# F# q
" c: J# _- M! b  @) [static void led_dev_release(struct device *dev)
( t& f# d+ E& p) F0 c6 g{
8 Q8 h1 u* F: j# ?};: F  p; p; {: _) d" f" S

) ~0 a3 M/ U" A5 b1 \$ Rstatic struct platform_device da850_evm_tl_leds_device = {. Q- r# X) x. @, Q
        .name                = "leds-gpio",
% u. `, {& X' n% _8 L        .id                = 1,8 S/ j& F2 v) Z
        .dev = {
6 P- y, f' s1 z8 d                .platform_data = &da850_evm_tl_leds_pdata,
. y/ L0 ?1 u2 e7 p8 J                .release = led_dev_release,' z4 v0 B) q' x5 S( a8 i7 e
        }
5 h4 v7 r! H3 t  O};3 c/ w# @) S- @" @% |( _

. ?/ v. @7 I; ^. j" w3 |static int __init led_platform_init(void)
4 z& J0 {2 A5 x{
* x) f. ?- r4 y- A# y$ q) M. A        int ret;' R2 a$ e9 f+ I+ d5 }9 X& w
#if 03 s+ E$ D4 ?8 M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ E9 Z! h, f7 ~% l        if (ret)
5 m8 @9 F8 `8 N+ T) N3 X                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". c) n- P3 `7 M0 x: S1 L$ V( \
                                "%d\n", ret);
. A, e  s- V# ?& c8 m$ r#endif% B- N" i8 M. v# {6 a+ f
        ret = platform_device_register(&da850_evm_tl_leds_device);
, K9 l0 l' U& P& c  J1 Q        if (ret)
( d! |- Y( ~7 ]4 K) @  t: R                pr_warning("Could not register som GPIO expander LEDS");
' h% D) T9 T( P' F4 E2 O        else
+ M- L: Z5 d7 _1 \8 y# W9 f% o                printk(KERN_INFO "LED register sucessful!\n");  F- V5 `, M# T. _6 h# ]8 Y

/ F3 O4 N5 h  w/ Q8 }        return ret;2 ^( i6 W( V2 d9 @' o) P  k
}  v7 ?/ {; I) @$ ^- v) Z: c
- D  ]9 T8 ]" ?8 G. g6 M
static void __exit led_platform_exit(void)
5 V% \* a% g( |{
7 Z  d" d5 @7 }4 g- S, O* U        platform_device_unregister(&da850_evm_tl_leds_device);: D  ~% K3 d+ f
* y1 O5 [& I: S* A
        printk(KERN_INFO "LED unregister!\n");" J/ r$ w+ k. q" B+ c  H
}
5 @9 F3 ?0 \% @  `
2 [2 h& T/ j2 b) Nmodule_init(led_platform_init);2 R  Q0 K+ i6 H# n
module_exit(led_platform_exit);& K" @  c9 \! n1 i

* A: \5 ?; P  |7 j- C0 P+ h$ sMODULE_DESCRIPTION("Led platform driver");% A$ v$ x9 j7 F# `) j4 Y# V
MODULE_AUTHOR("Tronlong");
. R3 j! j: c3 ^! h& sMODULE_LICENSE("GPL");/ v3 A, L9 a+ s' c) L. A+ @

) v- F" Y1 k5 s9 G7 K  g
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-4 14:24 , Processed in 0.039773 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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