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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, U6 \' Y# K: U4 Z#include <linux/init.h>
2 [% g6 [* U' Y( E#include <linux/module.h>& _1 z6 c+ `& [& z/ v2 g
#include <linux/kernel.h>& `) Q, A: ]4 {% ~$ }* `+ Y7 \/ R
#include <linux/types.h>
7 x( i6 E3 Q* O. m' s# m3 S, o* {1 `& p#include <linux/gpio.h>& ~* R/ w3 {+ X/ G* ?
#include <linux/leds.h>
( l. L) h6 |  Q+ o* Y, {#include <linux/platform_device.h>  c: P( K: k. a% N

. O0 l$ V9 G0 F. K* c; t#include <asm/mach-types.h>  G% m  J. a' C: e" L& W
#include <asm/mach/arch.h>$ b' \/ Q) {# U: r+ W. J' N
#include <mach/da8xx.h>- \) ]/ T/ o+ R4 W; N. ?9 D+ \
#include <mach/mux.h># b0 V* ?9 y) y) r4 T+ J

# f$ o, j  @8 K' E+ T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 S# A8 s* O; d/ i% z+ N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ _6 |# f3 t8 u1 b# q4 U, {1 x
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% |: s3 }/ w3 l$ t4 N0 ?
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 b: t- E( g" u8 s

6 j+ R9 y1 @! Y  }; f/* assign the tl som board LED-GPIOs*/( v, N' S+ {1 N( w* R  `
static const short da850_evm_tl_user_led_pins[] = {; ?; p4 r2 P3 D$ D1 R9 X7 u0 X
        /* These pins are definition at <mach/mux.h> file */
7 R$ |1 B8 @) Z4 a% _9 A        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; ]4 V1 I; ^2 V, O# `, ^6 x& G
        -1
7 R) @9 d- f4 k- T};
' U7 \0 R2 K( E" h  m$ \* S) V* R8 M
6 q& j% y1 h; R/ o1 W: Rstatic struct gpio_led da850_evm_tl_leds[] = {
( q3 K0 U. h/ C( R# v, X        {
+ Q5 P: E% x3 `: @7 Y                .active_low = 0,! i) W$ n) p/ w* M! z# I6 a' j
                .gpio = DA850_USER_LED0,6 t" r1 N( t$ }: L
                .name = "user_led0",' O1 D* K" G1 ?/ X" l# \
                .default_trigger = "default-on",
7 l" K9 ^* j0 K  M. U6 _/ q5 H        },3 x' [/ o# ]/ C( h, A
        {
! c8 |/ C/ l( ?; l4 _* m* S6 E                .active_low = 0,; F3 ^# ~$ y9 K" Y! q8 Q/ ~
                .gpio = DA850_USER_LED1,
% G9 a. m$ V! @+ J                .name = "user_led1",
( \9 Q/ m% p8 G1 M% ?: q                .default_trigger = "default-on",
3 L& W9 d: S+ w        },
! k9 z& G% V6 I( l1 I& h4 ?        {
( m4 k9 ]; f) b8 E3 A                .active_low = 0,
/ z9 ^" v# M9 R- G9 w1 K2 w                .gpio = DA850_USER_LED2,0 u$ P  L' B6 L9 k
                .name = "user_led2",7 H1 L  e9 |; T% l  {, {
                .default_trigger = "default-on",
& B( e9 m" m' h, f        }," B, h$ k" Q% s  l, ?& u8 \
        {. n, I* g. j( N& D* i4 W1 F  `
                .active_low = 0,
8 p& f% a0 ^! v' n* A                .gpio = DA850_USER_LED3,
2 y* ?+ m/ Q0 Y! k. p! ~; Q3 }: A                .name = "user_led3",7 m/ V; B# f8 @( `
                .default_trigger = "default-on",
$ ^" ?/ D* y  p( x        },! V' m* X6 H+ k9 t# I1 O& u
};
4 t" |' E& z/ [3 j& C
( I, ?) P+ o# {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. F3 }7 E# T* f' X$ q9 _        .leds = da850_evm_tl_leds," O: d1 C+ C( v$ h# A
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; }' z# U* `1 \# V
};
! e( |) X8 X' n' O! R! C& j. T. j: B
, q& _8 |8 J0 ~) K3 vstatic void led_dev_release(struct device *dev)) ^; {4 R) I1 q- Q7 y2 i
{
4 B1 F8 K: H5 |9 R};0 D. z6 w  ^9 K( k& q2 U

& Z+ t2 o6 L6 Tstatic struct platform_device da850_evm_tl_leds_device = {. F% k3 M3 E, c% |3 ^
        .name                = "leds-gpio",; e' e: G" D, ]3 |2 M- C; D; N' @
        .id                = 1,
5 K- D! d; x7 h! K0 Z  w8 d        .dev = {
; K: Z& r; V  [8 X0 J                .platform_data = &da850_evm_tl_leds_pdata,) {- r6 Z) b7 }* b0 c
                .release = led_dev_release," M* g1 ~  ?9 L  r1 l
        }* L! D! y. c  @
};
, Z$ l& @: @6 a. a+ u9 H, K- E/ X3 l% G% ~+ g+ q) D3 j& F
static int __init led_platform_init(void); I( Q1 p$ `5 x
{( ]* A! L! t$ y& Y9 _
        int ret;( E4 C; ^5 {+ r0 Y; {6 T! L
#if 0
/ b6 i3 G; Q- \7 q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( s5 e8 k- X6 u( q! H# v
        if (ret)
* s2 F  B  R% g( e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& N( h- Z. [& V9 N; v1 G
                                "%d\n", ret);9 u8 r( [8 ^: V' h* ?$ {& W
#endif
. P4 V) R" d: ^1 N9 a  v; t; d        ret = platform_device_register(&da850_evm_tl_leds_device);' f6 C$ N9 Q. @8 k- V" x
        if (ret)
, _0 `, i9 b1 n0 D4 i) \                pr_warning("Could not register som GPIO expander LEDS");
/ s# P1 e. F: g3 j6 H7 f        else
0 F- z1 ^3 F& `$ |; v                printk(KERN_INFO "LED register sucessful!\n");
# Z/ m: a2 `+ k: p1 C4 U- S( v: F, m7 O# w5 N4 ]3 W
        return ret;
% [( t/ r. r+ h}: P3 O0 s  F% R( N& A/ N
7 Q/ k. P" z3 f3 p; [
static void __exit led_platform_exit(void), I1 G( M; H9 _# {; U
{; X, L1 [/ k# i: R' ]
        platform_device_unregister(&da850_evm_tl_leds_device);
+ S6 R1 ~7 P/ w) j$ D0 n/ }) J8 d& r5 A% n5 B" B& M: U1 W
        printk(KERN_INFO "LED unregister!\n");! e$ c3 u$ N$ b: t
}
: ]& O% D1 `. o6 W. f& i: h4 x  P9 G0 C# D+ }
module_init(led_platform_init);: g6 i' V  z; @
module_exit(led_platform_exit);
. f0 o9 l7 R$ G: m
4 F5 `8 l- ^8 D2 FMODULE_DESCRIPTION("Led platform driver");
+ c+ c( d2 Y# O: B7 J3 \9 d1 c; gMODULE_AUTHOR("Tronlong");4 U' J8 A2 h! x) y
MODULE_LICENSE("GPL");3 G# b, y7 `* ?+ e$ t; |+ j
! V* b7 ]5 R7 X+ s3 @% W- ~8 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 16:52 , Processed in 0.038829 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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