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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 d0 r7 e9 f1 H% f5 A#include <linux/init.h>
& b, b- q% V4 N& _9 C- l7 W' }+ \#include <linux/module.h>4 R8 U! b5 t) k3 d" ]
#include <linux/kernel.h>7 z. J& l/ F+ j. ~2 R
#include <linux/types.h>
7 @6 f. V' i. y+ [, Z8 d#include <linux/gpio.h>
! X* V9 ~) D# O  W1 j#include <linux/leds.h>
& F, ?3 i2 @3 q#include <linux/platform_device.h>( J' h, O8 S5 v- B

  n+ }1 S6 k8 E0 x* a7 I" R#include <asm/mach-types.h>8 h! Y0 h( J, E, f. ^$ p1 J* ]
#include <asm/mach/arch.h>
6 H! a, G- `  A* R  [# L$ S$ B9 Q#include <mach/da8xx.h>$ z" Z; i% _& R# t
#include <mach/mux.h>
+ c( c5 E( @1 V0 V7 q4 K: y  F6 |& h0 |$ M7 u3 ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 [* P/ d. f! W# ~9 o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 J# }% W/ q3 j& ?9 B0 \#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' `1 T- v" G- l: `/ j7 Q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 }0 |2 F; {* H! }+ Y
  P' R" m, z! R/* assign the tl som board LED-GPIOs*/' \7 t: f2 K: Z" n1 ]# J! y
static const short da850_evm_tl_user_led_pins[] = {: I3 ]6 |( T8 p$ r& V; a4 L# p
        /* These pins are definition at <mach/mux.h> file */
, M  ?4 o) I- K) o4 y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 V4 I+ _5 W, X0 s# b        -14 X: \2 `& H8 S
};4 e9 f6 ]( k3 a2 x7 H/ R  @

! x4 ^2 P$ h# Wstatic struct gpio_led da850_evm_tl_leds[] = {
- L- y1 ?/ Y4 |% A        {8 R. ~+ U# E+ }$ a. {3 z8 M) k
                .active_low = 0,
+ G  g- `* o! y5 s5 I                .gpio = DA850_USER_LED0,
- O& u! y$ [# m4 f' ~+ }8 b                .name = "user_led0",
$ W1 I! {3 }! k                .default_trigger = "default-on",
. c6 z4 _  x8 ?) U1 p0 P" K        },# P% G+ I9 x5 U; Y$ Q
        {
% k) X( }' T2 D( E                .active_low = 0,# m) x& ^( S- ~* F' t4 B
                .gpio = DA850_USER_LED1,
. V( G8 B( D& l/ e4 K% [; t                .name = "user_led1",, G  D/ q' y, i: |) X% w
                .default_trigger = "default-on",
6 X1 ]& N3 X( m- ^3 I        },9 C0 F/ q( T' s
        {
! T9 @' i' Y3 i' ?8 R0 c                .active_low = 0,
2 x6 {2 f2 f; @3 ]0 ^  I                .gpio = DA850_USER_LED2,+ H& G  h' \. K' q
                .name = "user_led2",+ [, F/ F) ?  m; Q/ X' G
                .default_trigger = "default-on",
8 v9 w5 U( C, S% |' ?/ n" v        },
. p! E/ }  g5 l2 E        {
. u; w# t/ F& J( t. W- d: @                .active_low = 0,. i9 j: t6 Z" h" ^
                .gpio = DA850_USER_LED3,6 T0 O/ W1 R! j
                .name = "user_led3",
8 O" ]9 r" e+ M% s                .default_trigger = "default-on",
  W( G4 [  u) g" t        },
$ _0 q! C/ y. H3 n& K1 a4 m};
  q2 c. H2 l5 r$ Y9 I- Y) T
$ z0 U9 a: x7 u9 Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' X+ f6 W0 v: C* j
        .leds = da850_evm_tl_leds,5 H1 h  A' w+ B# y2 j' b1 A1 x
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" E# B, Y8 n7 O' q};
2 h2 u9 F6 B+ r. M+ U) H3 ^  _/ ^2 i& y* F) ~! l
static void led_dev_release(struct device *dev)  b- p' h$ V! n3 C/ O
{
2 q7 S, R& s9 W};3 \) u! P, e  X2 g. p0 G
  }1 K8 ]6 S" ~8 H' l7 _3 m
static struct platform_device da850_evm_tl_leds_device = {, M+ t6 j6 _1 t$ R! q/ x
        .name                = "leds-gpio",
( N2 o: m% u' @" d; @        .id                = 1,
3 d/ ]" y0 l7 {' y' g3 B9 c        .dev = {- o2 K% k1 N& D/ U; V3 h; g
                .platform_data = &da850_evm_tl_leds_pdata,2 ]$ L5 n2 }4 \) J5 K
                .release = led_dev_release,
; W$ A. U' w9 J. B6 e, D+ m        }% P# D! ^8 ]( s
};, ^! e7 W( y3 s

0 }+ e  \0 c, b) {1 k: c& f' D/ `static int __init led_platform_init(void)
) |% e" z! r: ~: Z$ p* h; D{
# H& F$ I/ q$ {8 Q        int ret;
9 X+ x" D( [6 B) g- T3 J& Q#if 0# _4 N4 ^# K9 j- }; ~3 w# ?. y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  M; w0 M: m6 z- w
        if (ret)
- t2 t% L& y( F- L* O$ q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 [3 B5 u; m  P; A
                                "%d\n", ret);
- j) B2 }$ N5 m, q2 z: T4 A#endif
) G; R9 |. b8 x7 E6 c- n        ret = platform_device_register(&da850_evm_tl_leds_device);
; u6 y5 o8 ?, _3 d3 j8 A        if (ret)
$ ?/ W( }! _2 C% [                pr_warning("Could not register som GPIO expander LEDS");
6 u/ G" n! S) c- l: W- b1 i  W        else
' B  x8 E5 [; U: e) X  u9 k! z                printk(KERN_INFO "LED register sucessful!\n");
' I/ ]: w7 m4 I! D1 Y; i! o
3 D5 P& o4 B6 `7 ]9 W+ c- i/ \        return ret;
0 j; p* E& W+ I) M}
8 j" L" u3 D' E7 w9 c
! N# p, w* T8 l. q. ~6 z: `static void __exit led_platform_exit(void)
4 R3 U; p* z; P1 D" Z{, [8 q0 l5 d7 M" ^
        platform_device_unregister(&da850_evm_tl_leds_device);# @( q9 d# Q8 }$ [+ G. {
* X) g* V) \- ^1 X
        printk(KERN_INFO "LED unregister!\n");$ h9 L! o2 ^+ o, k1 j
}
( c4 n: ~( |9 d. r, k4 y+ C- I9 B0 f6 k
module_init(led_platform_init);# ^* s% ~- o8 j- B$ Q# \
module_exit(led_platform_exit);
% T; K6 U! F9 B- n- k* B- I0 q+ Z
MODULE_DESCRIPTION("Led platform driver");
8 H- v9 v/ ^& q1 D6 Y2 g7 uMODULE_AUTHOR("Tronlong");
# e- N+ Y6 {* b4 m$ g, a7 `% zMODULE_LICENSE("GPL");' a+ `7 w5 ?/ M4 D6 d3 ?

- o  v* [7 m% [1 Y0 P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 11:09 , Processed in 0.043337 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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