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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 n& t2 O: \2 `; z* [#include <linux/init.h>! e& y! \2 T9 i1 M2 _! ~1 D
#include <linux/module.h>6 N" ~( W" V/ \/ ]
#include <linux/kernel.h>: ~. ~+ b+ v! U
#include <linux/types.h>4 G" N/ R2 `+ Z. G' Q5 V4 d2 ?
#include <linux/gpio.h>: L! X9 x% }9 |' n7 I
#include <linux/leds.h>  S% k9 Z( x3 j, d* k, O6 U% b# j
#include <linux/platform_device.h>6 v5 t! `: ?0 n2 Z: B+ F7 B
$ d9 e! I7 m. b' K8 y
#include <asm/mach-types.h>- k( V) C0 `7 K1 K# m. M# l
#include <asm/mach/arch.h>* S) _) S: R* r
#include <mach/da8xx.h>) D# e2 u3 t9 r
#include <mach/mux.h>7 e9 l, u3 \$ G" y9 P$ m8 t
' O" g9 |2 V. E; f% t% r; ?
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 }8 M. J6 F: Y, L. y2 r* G% t8 V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" O- q/ l% O6 A6 w
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* P/ {, O: E# [: G$ O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 r( T4 x0 q5 |$ g' e3 r3 y4 ]. Q9 u  \6 W
4 J! P% T3 F0 I7 Y2 a. L# J/* assign the tl som board LED-GPIOs*/- ]; S" T: U/ _& s
static const short da850_evm_tl_user_led_pins[] = {9 N) c  j, f/ |8 m/ ?9 I1 M: D$ c
        /* These pins are definition at <mach/mux.h> file */
7 A1 r1 s+ S( u4 w0 y1 d3 e, R        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* z; |7 r9 _# t+ K# ?9 |
        -1
" T: k- v6 }6 O# [0 h( o};
! K; b# m% R, k* X  Q( @
( @% C+ W# H& p/ e8 W0 @static struct gpio_led da850_evm_tl_leds[] = {
. l; i' q5 s+ J; a  a5 J7 l; M        {
& k$ {  _6 p; L  p2 Y                .active_low = 0,
6 X9 N3 ?/ n% H: Z# Z2 U                .gpio = DA850_USER_LED0,
5 E1 K$ V" ]8 G; o1 E, V; ^% T                .name = "user_led0",
, T: I% g  x- Y- D0 R* M" }7 G% g                .default_trigger = "default-on",. Y! a, X! G: L! Q
        },
) d" M1 r8 d) p" s9 z2 f7 }6 o" r        {
4 m; R+ V2 ^7 e1 ]                .active_low = 0,2 o, ]" R% Y; F% n2 A9 C
                .gpio = DA850_USER_LED1,
. t" l4 G& ]- H; {# j" d3 u/ H, {                .name = "user_led1",
, m$ @5 `0 H: u8 K; Y1 f                .default_trigger = "default-on",. i: A' t+ Z6 ?4 ^$ H: R
        },( N2 h8 ?, Q" i' U, v
        {* ^( X1 e9 U! L, y2 p, t% ?- M
                .active_low = 0,8 @" d( @2 v- z3 g6 N$ b, K3 G
                .gpio = DA850_USER_LED2,
# f1 K) r; e$ k# T                .name = "user_led2",4 |: t) F8 u- G: O% Z- v
                .default_trigger = "default-on",$ E2 G4 _3 e! U  C- b0 x' r
        },
9 q4 ?+ e# m8 R) P# m: L        {
4 e3 z7 t( W! t9 F  W                .active_low = 0,* a2 S& H4 W- ]0 l4 y& U
                .gpio = DA850_USER_LED3,2 @0 F6 b2 m! y  {: e/ E" m5 k* v
                .name = "user_led3",
" d& |( |8 V: j1 l. _                .default_trigger = "default-on",- M2 _8 z$ C, m
        },
& U- i* z/ p8 W4 a};
* Z; n8 ]# V3 Y( s; I5 M
. P) N4 r  l" Y& rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: _0 S# a/ [5 S9 I
        .leds = da850_evm_tl_leds,8 g/ P! T) s, Y3 r. _/ ~* _
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ J) P1 Y2 J+ k# P, T. r) I
};
- U" a- Z* b, N% ^# L9 {9 u( \+ l0 W7 N8 b) o- O8 Z  w
static void led_dev_release(struct device *dev)5 H, L+ b1 M$ g1 _: U" W
{% ]1 t1 J! `2 x; f+ L
};: \# `" }, q( |7 d
8 W2 M, Z* a/ y# G
static struct platform_device da850_evm_tl_leds_device = {
3 D9 o" i3 l1 w+ Q! ?* Z        .name                = "leds-gpio",5 n6 c' A8 a/ K/ k) G' J( B
        .id                = 1,/ B1 P8 ^5 g" c$ _5 B6 R
        .dev = {
' q, i5 Y+ J! Q/ _* M                .platform_data = &da850_evm_tl_leds_pdata,- S, D  C; K3 j: X6 }7 e
                .release = led_dev_release,
5 L0 P. S* g* ^/ r        }( [( g" N" ~; T* q/ i. G5 t3 B; |9 q
};1 A$ W* ?. R( A( K! c8 E
/ s- C$ s( [6 S1 O4 J: r9 A: g6 F0 X
static int __init led_platform_init(void): X: u1 o$ j; j4 {6 P
{
( {: ~. ?. ?. E! A! n; R3 }        int ret;
. i5 F" R: I6 G; R#if 0+ _+ A# |& w- ?. k+ _8 O+ q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 m4 G" A( C1 d% |
        if (ret)
% P) I: v# _, q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ |3 @3 Q/ X0 ]                                "%d\n", ret);+ H0 i( x" B8 {: l7 p" Z
#endif0 `5 q' F! j/ m) g, y9 Z8 `7 M9 f: q
        ret = platform_device_register(&da850_evm_tl_leds_device);
0 p+ g8 S8 j* n. O2 \+ t        if (ret)  n, {2 @7 l5 g8 O3 `+ M* \/ L' y
                pr_warning("Could not register som GPIO expander LEDS");8 _3 a. }+ P5 T: k9 c7 [% \
        else
: N# N3 y2 V: h& r. s" Y8 ?# n                printk(KERN_INFO "LED register sucessful!\n");
+ v: o9 x$ s: ?
1 R1 d, k$ e7 R8 }- D7 K& _        return ret;
& Y! l$ e% I% D. \& D$ x3 a}
0 r7 t" A- Q+ ?' X: Z3 t) R$ }4 |1 q2 ~- h! |4 @2 ~5 G6 W6 n
static void __exit led_platform_exit(void)
+ d- e9 V8 D. B$ |- q7 ?! j: w{. d( Y; Z$ |' @
        platform_device_unregister(&da850_evm_tl_leds_device);" h' l+ q$ [0 U- |0 a- F# k' b

1 {2 j( R6 I: i% ]9 m        printk(KERN_INFO "LED unregister!\n");
: d( \6 }7 h1 N2 I}6 J0 e; U+ c1 S0 X! g  z

; B2 @1 l1 N- G/ ]module_init(led_platform_init);
7 ]1 S5 G' t' k% U  @module_exit(led_platform_exit);+ @% h, S+ U& C3 P0 b

* C9 i" j& @9 s' w. B* S4 wMODULE_DESCRIPTION("Led platform driver");( [! E3 v7 w4 c  ~- g- E3 f3 N9 T& q
MODULE_AUTHOR("Tronlong");
2 A- W3 g$ Z! H5 N; k: NMODULE_LICENSE("GPL");/ i* D' ]1 B/ u/ M) U
7 i1 ?1 P# ]" Z* W0 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 06:36 , Processed in 0.040704 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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