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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, d( v; B# t, J5 K$ M1 J& C#include <linux/init.h>
3 ~# z  r- ~7 D# \9 ?" x- H#include <linux/module.h>3 O$ G7 `8 i% Z. u7 T( @4 O
#include <linux/kernel.h>
4 `1 |, v# d! c$ ^#include <linux/types.h>
: ~/ `* _; E) [/ T#include <linux/gpio.h>& Y2 v9 a# t* I  o8 R
#include <linux/leds.h>
, _; W1 D8 ~9 k9 @#include <linux/platform_device.h>
  \5 Z3 i; X3 U; S3 A3 P& G
' R4 h7 p/ g- V8 J#include <asm/mach-types.h>, h, m1 J5 y! o' ]# L
#include <asm/mach/arch.h>* k; x( b! o  c% y
#include <mach/da8xx.h>/ p8 z+ g' i8 v3 i3 y5 K, d% j
#include <mach/mux.h>
0 ?7 P  W# Z% ~* }) h, N- m9 e
6 ^; j. |0 E) C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) ]: H# g! ?( s7 ^1 M#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ a4 R" c& P$ b% `0 I7 p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 L. E4 V4 k: g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! K1 ]! s% R" J2 M
& g( ^: m5 x/ R$ o9 a, U- p9 c/* assign the tl som board LED-GPIOs*/) X# D( Q% T( x3 f/ E
static const short da850_evm_tl_user_led_pins[] = {
8 \+ A" |; c- ]+ @- K) n        /* These pins are definition at <mach/mux.h> file */
" m# O9 \8 X7 c' C! H8 g3 C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ O; `. u7 K+ o% I7 |( _& @$ f! S        -1' |6 d9 r5 _5 ~  Z3 ]. M3 r
};: E9 d6 |! c  |$ ]; r) F
4 m/ k, G7 ~2 ?/ a7 {
static struct gpio_led da850_evm_tl_leds[] = {6 S; N, n; K+ P/ m
        {
+ x; g3 @. d7 n5 B( B                .active_low = 0,
; p) Y: a4 c, h9 \3 H* ^                .gpio = DA850_USER_LED0,
$ \" X% \! {) z. w                .name = "user_led0",
* S; x  Y5 l* A& v) ^' f                .default_trigger = "default-on",
6 h2 J8 x; i5 p& W        },% q7 p4 j8 W/ I4 z  R$ y! X
        {
9 c7 v' R2 J, F( a2 @& j- j                .active_low = 0,
6 f- X) a, @$ W. f: m                .gpio = DA850_USER_LED1,3 ?) r" p% {% O  C
                .name = "user_led1",- k. ~& z6 H+ t) u/ \% p
                .default_trigger = "default-on",
$ H6 I; t% `. s! k$ a* @/ F        },7 J! i+ w8 p) q/ @7 P& C2 b) E
        {
* p8 G* f3 X# w% u) t* b7 b& R                .active_low = 0,
! q0 _2 J5 L- I5 J' H                .gpio = DA850_USER_LED2,
+ M3 T. J% Q; B( \$ g& N                .name = "user_led2"," O# t* x. S. N% A- C+ I
                .default_trigger = "default-on",1 p9 g9 f3 b  f* i  S, o
        },1 @5 Q8 }6 Y0 c8 B0 y& Y
        {
& e  v, A5 T. v" [3 m% P+ {                .active_low = 0,
! u, K. V( V5 q9 y% s! a                .gpio = DA850_USER_LED3,
0 Q" G% b  z5 D/ p: G4 F& }: F                .name = "user_led3",
0 E' r" F/ ~% ]: L9 K+ O! A9 z                .default_trigger = "default-on",
0 V, ^( x$ C/ A: w) U        },
5 S% a% D5 [9 V1 P1 y( A1 s% T};
/ S7 J2 ?7 M9 G  I; ?, m6 v2 M1 x% M' V( N( K3 p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: j) V' g1 Z2 w  \& Q% Y        .leds = da850_evm_tl_leds,. M: Z1 q) g; V7 U7 R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 z% H2 g/ `9 j
};
$ A3 Y  U9 l5 ?7 Q! q
2 J& P& x  @& _, k& l6 H6 Qstatic void led_dev_release(struct device *dev)
3 [2 U7 D1 X( Z: N' E. w{! \1 [+ Y9 J- Y& G6 a5 Z7 G
};
, R2 O% L3 f( o9 S' K% a# F6 U. |6 a1 n: a+ N
static struct platform_device da850_evm_tl_leds_device = {
) h& Y: r' C2 s        .name                = "leds-gpio",
3 T( F$ d9 i0 y% G- o7 i% a* |        .id                = 1,
' k2 ~; u+ T9 I0 ?6 n        .dev = {, N& q5 d* b& M+ [1 }* @
                .platform_data = &da850_evm_tl_leds_pdata,6 I5 X) v* z3 p1 M2 f! x. P4 J3 R
                .release = led_dev_release," C7 c& \, J( C3 P
        }
+ G; r+ |" P. ?" ~8 p. {};1 z; h6 K/ r2 O! C: C+ e
" A% t6 F( `! [3 G! s
static int __init led_platform_init(void): J( I# f! y  Z6 w" Y) u
{: n* R3 w1 }$ M* b1 r, r
        int ret;
/ c/ [* p/ n6 j6 O. p* k) x#if 09 B: ^7 z" ?, m" M0 ~
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 @; i, x  ]- E$ `- @3 ^        if (ret)7 K# e3 Q" d3 r9 b$ N
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", S+ c( p% Q9 q, I: N- T) y
                                "%d\n", ret);
- J) b: v% ]! b4 r#endif& J0 A+ F. _4 y2 F
        ret = platform_device_register(&da850_evm_tl_leds_device);) O, J8 F! i+ [  t2 c2 d4 P5 F2 {) c( `
        if (ret)  B' J& ?0 S1 H+ c
                pr_warning("Could not register som GPIO expander LEDS");
9 m: @1 u% I$ }. c+ g        else* u. J8 Z7 r+ L3 w) E
                printk(KERN_INFO "LED register sucessful!\n");+ X: r- h2 m* ^! t; h9 J. R! L
" }5 r% Q5 L2 E  W) X
        return ret;
3 h: o* w' R4 n" ?4 b8 K}
8 x$ ^0 k# ~$ g: H. o; Q# ?/ E: J& `; d8 H
static void __exit led_platform_exit(void)" o6 x# A* @9 U* ~5 x8 R/ b9 m& h
{
! N9 z" F6 ^3 ~9 y: K' h        platform_device_unregister(&da850_evm_tl_leds_device);
& _$ d, x: S+ x; m
" c" n9 g9 F5 V. J, Q, A! `( ]        printk(KERN_INFO "LED unregister!\n");" V, d& v" P1 L9 `9 A. I
}
2 x, _, ?* S; s0 {8 o# T" h
$ L, n6 N! O8 @- _3 e7 f5 Amodule_init(led_platform_init);
( N$ J$ w$ s4 V* omodule_exit(led_platform_exit);* ~. X6 f- H( R4 S: D
& U$ P4 @* D( @* m1 b; U9 s' M
MODULE_DESCRIPTION("Led platform driver");
' d# }/ @9 t- Y0 e& sMODULE_AUTHOR("Tronlong");
, a8 {% K5 U$ z: c' o/ E# oMODULE_LICENSE("GPL");
- K" r4 L# j, M% Z1 L- a1 m- u) Q2 U! x6 r/ {3 R# ~# L" N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-8 02:20 , Processed in 0.039887 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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