程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ r- S5 m( Z# x( z
#include <linux/init.h>- a7 L  [2 W9 q4 c1 C' k
#include <linux/module.h>
6 v! ?3 a% F5 f' `, d' Q0 C# N#include <linux/kernel.h>2 m7 A& M4 W+ W# h( W
#include <linux/types.h>! u# }3 y5 H$ h" R
#include <linux/gpio.h>
* X7 v9 x3 i/ n( C#include <linux/leds.h>0 Q' x- {+ s% e$ K7 {
#include <linux/platform_device.h>
3 M* R4 G1 \! J! F" V. J7 d' g# {) ?7 }, B- M2 Z8 F6 L9 V7 m5 L
#include <asm/mach-types.h>3 o' n* N0 N3 P  {, u
#include <asm/mach/arch.h>
8 D9 U) M# K* Q6 ?5 L/ Y, a#include <mach/da8xx.h>! Z; e* X7 f1 [4 a# {
#include <mach/mux.h>
" H' a+ `- c3 H5 a$ D3 z6 U8 O: B1 l; N5 Z- e6 s% `. G
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 q2 r( h! y; }; I#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" e( ^: }3 d7 o#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) y' Z4 o& {/ F( ^4 A  w, a+ `) y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% p/ k- k) I, e- h0 {

  }. N1 o9 w0 d7 Q7 M" F1 `/* assign the tl som board LED-GPIOs*/8 ^# }% G/ h: Q8 Z# p
static const short da850_evm_tl_user_led_pins[] = {
* c0 U7 w. ^; Y8 r4 [/ F        /* These pins are definition at <mach/mux.h> file */
7 |5 X3 G7 d0 {: C9 u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 Y% q, n; n! Q) m
        -1
# ^3 a/ R2 u6 [* o};
! j! r+ A; [4 E  ?/ F1 N  z' N
) |$ }+ n7 _; R$ Cstatic struct gpio_led da850_evm_tl_leds[] = {5 r( q7 e) l/ R- C  b% Q) r
        {+ Y  ^  T+ Q) o. b. y
                .active_low = 0,: ]! i# M% X% L4 R
                .gpio = DA850_USER_LED0,
6 s9 }% c/ Y' I, ]( p                .name = "user_led0",0 u+ T, O, m% w/ p, a$ m  K
                .default_trigger = "default-on",
- Y5 ^  j4 h- I# N" n7 l0 r        },
% K+ P/ a0 P% ^( o- v; K( }1 j* c        {
1 |# T; v; H3 D5 l# ^# F5 g/ \" k4 u+ I( r                .active_low = 0,
+ J) s- _/ R1 s" `                .gpio = DA850_USER_LED1,
( R$ }- z0 I. b& K# e                .name = "user_led1",/ T7 d& R; r4 ]; N" y
                .default_trigger = "default-on",+ H: J, C( x# u' `9 z4 {
        },
9 Z! @! p) p/ Y- T  W        {
" `+ ?/ {1 T8 O0 w) |                .active_low = 0,
1 c, f( L) t( z; o9 j3 ?                .gpio = DA850_USER_LED2,
, q+ }0 m+ M+ A4 r                .name = "user_led2",$ R: m/ b! ?) j4 b6 S* T
                .default_trigger = "default-on",
+ U1 k5 d. K7 N  g9 \/ f+ f3 C        },. U% h! F& V& k  {% W$ V
        {
( C+ a/ @) P5 ^0 F1 ^* g( z                .active_low = 0,/ A) e& E. h6 x- b* v. f
                .gpio = DA850_USER_LED3,
6 L7 E) O! |1 x                .name = "user_led3",
; A' u9 _9 _- [+ g                .default_trigger = "default-on",
2 m( p  r; M+ @* q# f- W, S        },
" x& ^) \: H2 g; [" H' l9 o$ A  d3 J};
! ?2 Y" g: i- l- j7 Z+ W; R* W2 S3 }! V" K4 a
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' `6 B& ^% z8 m: N  r' f" k" S0 |1 H9 T
        .leds = da850_evm_tl_leds,
6 l1 t2 ^0 R1 p6 |$ N        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; }. K2 ?8 m4 o) D3 X& G
};
' g7 s8 ]8 }7 k, x# Y9 V6 [" ]9 n/ R! U1 \3 V
static void led_dev_release(struct device *dev)2 X! i* N1 p5 c0 A* P& K" y# e
{
" X. S8 q8 Z( a# F1 J7 d- Q1 ]};& W$ O, u# U1 i4 \
" R  `! i' V1 p5 o/ o0 \) S
static struct platform_device da850_evm_tl_leds_device = {
0 Z; ]3 R: d, f. E. I+ {3 D3 M2 A        .name                = "leds-gpio",* U' [: U$ e% w% f
        .id                = 1,- g5 N7 D4 w* G# O$ F& A
        .dev = {
1 Z$ j9 j! r4 X7 w; p                .platform_data = &da850_evm_tl_leds_pdata,
% S0 g3 y% Z/ b% e1 h9 [                .release = led_dev_release,
! M1 ~8 M" ]! j# t6 |        }! \8 K- F2 _8 P& z6 g
};+ _) e. Z  M! @6 y
  \2 L9 s0 C  \# S7 [4 p, p
static int __init led_platform_init(void)" v6 D" K  a% Y7 O
{# D3 \8 g1 u3 C  f) ]) f7 [% `
        int ret;
: Q) u) g' V/ Y! h+ o) N#if 03 C# w& ?; c( g% |6 Z# p4 p
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 r; n' R$ `; p: E( X+ L& [8 s& B
        if (ret)
/ I" o% r3 d# w$ W+ e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, O' S+ B0 Z- j                                "%d\n", ret);
) ^' _. s& G) p7 d, ^+ d& `#endif5 L( i/ r# m1 `4 q7 _
        ret = platform_device_register(&da850_evm_tl_leds_device);
  a0 j9 [9 g- k& }- u        if (ret)' g0 E6 l5 r5 v, P
                pr_warning("Could not register som GPIO expander LEDS");
% ?/ x3 c8 F2 p2 p        else" u* O" U) y$ U1 c1 W
                printk(KERN_INFO "LED register sucessful!\n");8 e& }$ c0 I  T4 Z0 m/ c
$ N; t, |6 j! U' q! a
        return ret;
5 Y! [/ I% B$ v: S# \}
6 B( A) y, ^  T  s; O# ^9 c6 V- f' N
static void __exit led_platform_exit(void)
+ V) v8 A" g& t5 v! O4 T3 Y0 _{
# Z; \, X- `+ {& I2 F        platform_device_unregister(&da850_evm_tl_leds_device);
3 ?4 G# k  {) V* W! L
* W# R5 |$ o  ~+ J        printk(KERN_INFO "LED unregister!\n");! x: a4 p6 S4 C7 H! g
}& J( ]4 Y, P4 N, j
( y& @' g2 F. A  V
module_init(led_platform_init);$ g& J% I9 m4 f8 }, L
module_exit(led_platform_exit);# X1 N5 O' i1 L
7 o+ U/ j5 \0 @
MODULE_DESCRIPTION("Led platform driver");8 l$ g3 @0 ~% P& D5 W
MODULE_AUTHOR("Tronlong");
0 u2 l& N' ?8 EMODULE_LICENSE("GPL");
0 R; V$ G: w" N: a5 b6 }: t5 X% b1 g# c/ w$ A: _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 03:55 , Processed in 0.033765 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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