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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. |$ n* a) v9 _, w  q#include <linux/init.h>
& }- ^( z) T# Z1 n  p#include <linux/module.h>+ E+ e" G% d% V8 z' ?0 w' S
#include <linux/kernel.h>4 O8 A; |9 h, z4 a  E! f7 u- _1 Q
#include <linux/types.h>: R8 k1 n+ @; }) f/ W
#include <linux/gpio.h>- v5 |: i" E% I0 n8 b' n1 G! B
#include <linux/leds.h>$ O# v" r# B6 F/ D; g
#include <linux/platform_device.h>
5 @: W8 b. H) Q) a9 J4 x* t; S' _0 x9 G
#include <asm/mach-types.h>7 T& T% X# g9 {
#include <asm/mach/arch.h>
( E# `, Z" B+ W$ z* J, |" @4 R#include <mach/da8xx.h>+ [! i! I* B; E% V0 p9 m6 m
#include <mach/mux.h>
$ \6 q4 D+ s& s9 |0 f, x0 a- P4 k! \: J6 |/ w
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' N) N: \! _* b. c6 `. o7 h
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' c* u# n0 V# C  F/ X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 D6 B# f: Q7 O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 H. f( p0 E' r2 a6 B
% o/ G# t' z+ K8 \
/* assign the tl som board LED-GPIOs*/- a/ \. _( @" C. G1 v* ~9 R
static const short da850_evm_tl_user_led_pins[] = {* K  J5 v8 T3 p" ^
        /* These pins are definition at <mach/mux.h> file */: }' t2 ~/ y- ?6 m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 z6 i1 R3 j8 C4 f        -18 A4 C1 [+ d5 ?5 z$ ]# a' r' w
};
2 t" i: Z  w% e( c9 x! T9 e0 Q9 g/ `4 I: E% w
static struct gpio_led da850_evm_tl_leds[] = {
- _2 \* j" g( l2 ~        {
- @& i' c0 y0 g! Y1 K1 e                .active_low = 0,
, G9 b" E; Q- p$ e( s                .gpio = DA850_USER_LED0,
1 d: m# p+ X) r9 K0 [* m                .name = "user_led0",
" C  ]7 V- j9 B5 d" R                .default_trigger = "default-on",& d: i- y* X/ ]/ A7 `
        },( L' B6 T$ d' f6 w1 c  h' Z0 [
        {6 V3 Y7 Y! |# P( r( g' v
                .active_low = 0,: @' Q$ D& U. b+ @
                .gpio = DA850_USER_LED1,; ^7 l# ~* K6 M% k; \5 J! p
                .name = "user_led1",2 e+ c. E4 ?+ b( u( T5 U/ V
                .default_trigger = "default-on",' `0 ~+ }$ Y* ?+ b6 u- u+ I
        },
' e# e" \+ |3 u( R: A        {, O- u+ p' k8 r1 n6 e  L# J; \
                .active_low = 0,
' b8 m& n* n  u( T# t                .gpio = DA850_USER_LED2,# ~2 l# ?0 r/ ]/ v9 w- d4 {# m
                .name = "user_led2",
- @- q9 S, q% j  Z9 X, @( b6 X2 o% g                .default_trigger = "default-on",, x0 @! ~$ a" _$ ?# z9 L
        },
. n& k5 W  @) ~( k        {! f: m( h0 Z5 D, H0 b4 S0 Y
                .active_low = 0,0 ], Z. t6 }8 n9 _
                .gpio = DA850_USER_LED3,
, X, X/ C- ^# ^! Q                .name = "user_led3",2 e: u7 l+ S* O* j
                .default_trigger = "default-on",
' U$ u- z) R8 U! W2 A/ _& r( O        },
8 }' Q) J' Q* T};4 t& A5 `  l& h8 j/ a; q
3 i4 V3 e6 j# e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" B% l' W7 q- s6 S6 N, J/ m9 v        .leds = da850_evm_tl_leds,
0 A9 S1 G7 H& T( \* L. G* M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 @4 h+ F: V+ I. ~1 Q) v! m
};
0 x" ~2 \& i& m1 n; c9 j
9 ^. x, Y) Y$ z+ e6 [' t6 k5 Bstatic void led_dev_release(struct device *dev)$ N' ~) D5 j& b  Q) B7 o
{# X8 [$ J* J" }/ B1 W- G
};- i2 l7 B* w" q6 E" @
5 z! ^  N* h9 f
static struct platform_device da850_evm_tl_leds_device = {6 U+ o: C5 X- a4 v% \9 q5 V5 t) G: E
        .name                = "leds-gpio",
- J/ Z1 [) k3 g1 ?( a7 E  ~9 v1 Z$ ]        .id                = 1," C6 Q" x3 b! c/ c4 _# n7 ~9 A
        .dev = {
( T( t5 p* ~: y* K0 ?( g' @                .platform_data = &da850_evm_tl_leds_pdata,
3 t% e6 f8 g7 ~# _/ H                .release = led_dev_release,
& {4 x: P% Q! x, }* g* r        }
1 P8 Q( z% E( z% X3 R& Q: k' v3 L};
$ }  @/ p; R3 @: G; d1 q
: j) n) d! K8 P0 z; |7 }static int __init led_platform_init(void): u3 N* f3 G$ H5 Y- A6 ^- I& v  b
{
& t$ x# \# {: w7 K! V$ L/ m0 ^5 l        int ret;" f% _6 k# v/ y/ j
#if 0& O3 c! p% ]9 C6 t) g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* T% m. r- S6 o2 x0 g        if (ret)6 R! d2 v: F  [0 A
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 f! a' a+ d- h- C
                                "%d\n", ret);
, y; o' e) r$ o/ v#endif7 X- ^0 T# a8 F- ?8 z3 i
        ret = platform_device_register(&da850_evm_tl_leds_device);0 [; }" m' f) d; v6 z
        if (ret)
6 S) f2 E+ H1 v5 D6 Q                pr_warning("Could not register som GPIO expander LEDS");
0 k+ l  F+ q; m& K: o        else  q" g; U4 k/ t7 `4 M
                printk(KERN_INFO "LED register sucessful!\n");
' \% m7 h# |2 E: i. |
8 S, d) y! a* ?9 U2 p        return ret;
$ Q: s& q) `3 A- U: C}9 s  ?: x# e1 |2 p4 w! T5 q

- n7 m- L0 [/ l# ]: m, Bstatic void __exit led_platform_exit(void)$ K& W: e# F; G5 V" a' B
{
8 l' r6 l" M% q5 I5 C        platform_device_unregister(&da850_evm_tl_leds_device);
9 \' \' ?0 m8 n0 K1 W4 q/ p/ Z# n# f# u3 S: J: e1 w. @9 t
        printk(KERN_INFO "LED unregister!\n");
: r, ~& Y0 w$ X; s& m) K6 i- L- _}
* @: p; \" Y0 D; `! ~
& }1 v& v" R8 g6 y& O% ~* ]/ Fmodule_init(led_platform_init);
6 K2 l3 d' Z6 I( B9 mmodule_exit(led_platform_exit);/ Y! A1 F9 }/ m
* b( a8 N1 k8 b7 h; n+ {
MODULE_DESCRIPTION("Led platform driver");" E5 E9 Q  A1 t* j: u- Y
MODULE_AUTHOR("Tronlong");- G0 Q' ]; C/ Y! `5 Z
MODULE_LICENSE("GPL");$ A2 A* r' U* Q% Q

& r1 P' A3 z3 Q3 _2 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 03:46 , Processed in 0.039896 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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