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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 g/ l9 \+ j1 J# s' [2 F2 f#include <linux/init.h>
4 P" ^; V! C9 Y9 n/ B0 U; s#include <linux/module.h>
4 G# k% A# n) W#include <linux/kernel.h>% s, S% T" `( i: w& J' e) W, w6 W2 m
#include <linux/types.h>4 B$ v8 u+ n  }5 }+ l
#include <linux/gpio.h>& q/ P. Z; T1 m
#include <linux/leds.h>
  R! Z* w' |, _0 T, q, ~2 n  ^5 |#include <linux/platform_device.h>4 Q7 A' b* E# p) i3 ^) z
' z7 E, u) |- Q  V# y( w5 w
#include <asm/mach-types.h>5 \# y/ u/ F5 C' ~
#include <asm/mach/arch.h>
- F& |6 k6 t! o; B% o! O#include <mach/da8xx.h>1 f1 ~& G& [6 i
#include <mach/mux.h>) x1 I, V+ F9 s* H) _0 c9 v
8 z, C& h$ Q1 F3 p: H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- \5 S4 |6 F/ a' ~! ?3 r- s1 O#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! b, L8 e7 O; I2 [5 G
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 i* @# q  @( u. W  m" S, w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ d. ^6 P; T# K8 m
, R9 }9 w" u7 x% L) V
/* assign the tl som board LED-GPIOs*/6 [$ h, P- K+ t' @1 O
static const short da850_evm_tl_user_led_pins[] = {9 m0 k: i2 H# N# E/ J- t4 n- i, T
        /* These pins are definition at <mach/mux.h> file */
  \! ~2 K( H; O; N+ [3 m        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," h7 s$ ]* z- M6 \0 K, I
        -1" F- ~7 S) {5 r  y
};$ S5 D+ @* ?6 ]. }% `. ~) R% b% [
0 O& H8 B: f  D- z5 Q
static struct gpio_led da850_evm_tl_leds[] = {
& k3 ]+ [, W4 X$ w' K        {. n" i- \, ?' }7 P$ q) ]# d
                .active_low = 0,& j4 ~1 h8 l, t( `# d
                .gpio = DA850_USER_LED0,
7 B6 `7 _5 W3 G7 G% i  l                .name = "user_led0",% Q# F  y+ h4 E6 |0 k6 x# n* R
                .default_trigger = "default-on",
) ~2 g5 C3 j9 Z) s! f; h        },
' G6 {6 D3 h2 \4 j        {: t: b5 j2 u. x2 U' e) F; e3 r
                .active_low = 0,
+ K4 ]: S  o. i( R9 q                .gpio = DA850_USER_LED1,. N8 H' ?; {# R' H
                .name = "user_led1",/ V; t1 @" D  S" H' b
                .default_trigger = "default-on",
2 _& l2 N( n$ |) ]% @$ h! J* |4 Y4 p        },. Q! F; U6 r- J
        {4 t3 X$ ^3 t! ~, N$ ]5 h( K
                .active_low = 0,$ x  I8 b1 z& `9 z
                .gpio = DA850_USER_LED2,/ D0 {; Q" x! J9 D+ t: T
                .name = "user_led2",3 x, U0 z' s+ J2 |
                .default_trigger = "default-on",
2 A& B4 w' D0 m8 [4 o3 z2 P2 I        },
. x* H: f& o; [  C1 V. a5 h& X# g7 F% R) a        {
( S* Q7 u8 F' A) M                .active_low = 0,
) X* @) ^7 u" c7 S* C0 L; J- H                .gpio = DA850_USER_LED3,
  x" t+ U, l. C. k% r                .name = "user_led3",
6 V' V, m/ C3 Y$ u( t/ g" d                .default_trigger = "default-on",
, \& z6 q8 I9 H; Y, T        },
# `8 V4 ~+ d% q3 `: y};( d7 y. z; W, ]/ c% M

; @. k/ z0 Q& ?5 v& f# m- O; estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ h/ Z' Y' h0 E4 w        .leds = da850_evm_tl_leds,
; k) o( `% s, n0 ]- r1 B( _$ O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 G& Z& H' q7 k* O
};4 c5 l0 g/ a, a8 x

- n" X; g1 U1 q8 G) `- N# \static void led_dev_release(struct device *dev)7 ^& q* @# u6 e0 R( Q* z5 P
{
' M* C. m5 ^8 F9 n) N" `; t) |};. J! _6 {* y" v/ I" q
9 [1 y% ~3 h# U# m/ b
static struct platform_device da850_evm_tl_leds_device = {
6 c, q- O. T: n" n        .name                = "leds-gpio",
4 V1 T% R2 \. E- ]. _# }; w" k        .id                = 1,9 U" Q' q6 ]" L+ Y4 T6 a8 [
        .dev = {
+ T; n) {- ~# D8 m; ~                .platform_data = &da850_evm_tl_leds_pdata,% c2 J& ^$ {3 @- c1 ?$ k. ^
                .release = led_dev_release,5 G; x9 L  q8 @1 `. S- O
        }/ b6 e6 O! y3 z2 n( A% _
};5 L  o- s! y8 h: y
1 E) \  Y" E5 k! ]0 y
static int __init led_platform_init(void)
" y( z, Z  x2 A) r8 w3 ]3 d{
( W( n  H6 L1 D2 ?        int ret;4 I7 b& T6 L, ?( t% Q+ J$ V8 M; b
#if 0
4 s8 x$ g' i& y+ o% m" `! w        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 M' w4 l9 e! w2 x) x; c        if (ret)) u- n5 x$ N/ Q( h6 D) x0 e
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  D$ Z: j& F$ f2 a" _                                "%d\n", ret);; t- \! p! V- L. w5 K
#endif
4 V2 K$ w$ H8 e& l+ v  b5 R4 s        ret = platform_device_register(&da850_evm_tl_leds_device);
! h" l. O' R; V6 g  @, ^        if (ret)6 p0 B7 G, k9 W- x6 ~& E
                pr_warning("Could not register som GPIO expander LEDS");$ r5 ?# n: w, s9 P3 K
        else, A; F- O- B* `9 J! l
                printk(KERN_INFO "LED register sucessful!\n");
1 v& d! P" N$ X4 }  q4 [* a8 X$ }  `& M8 T1 ~/ |8 Z
        return ret;$ g; B3 w4 z- G$ K( J9 ?+ M% z
}
$ D1 a& e+ }; z4 i
; n& C+ I# z( ^static void __exit led_platform_exit(void)
/ v+ A6 E& G; L* H: r{
" C! K/ C2 F# R+ E4 v) @3 T        platform_device_unregister(&da850_evm_tl_leds_device);' D( A! A5 ]* E! J, R! y5 A* i
1 t% S: T1 ^7 I: I
        printk(KERN_INFO "LED unregister!\n");  [  L* S( ?2 t" o& t9 R
}
# E* k0 a" b, z* ^: W, p4 _. o: [, |# m9 W. h
module_init(led_platform_init);, {, m! t4 S6 }
module_exit(led_platform_exit);6 K* f8 e' |: P* K& _4 T( k

. _0 I" X% D& ]) G5 kMODULE_DESCRIPTION("Led platform driver");
! `/ J4 W0 A0 R. i. HMODULE_AUTHOR("Tronlong");/ f3 ?& K$ H/ F  \' F
MODULE_LICENSE("GPL");
8 j3 I6 e' D8 x' ^% N4 C  i* V3 G5 y, c! G( n% k# K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 02:39 , Processed in 0.039567 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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