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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! a; {6 w, O# j' O; V+ y4 A#include <linux/init.h>$ ?- {/ S1 D) \* E
#include <linux/module.h>
5 y! L* L& b) q3 @#include <linux/kernel.h>* Z! c. u! x" Y9 d, b8 ~: y$ J
#include <linux/types.h>1 G% h: Q9 L7 |0 {
#include <linux/gpio.h>
  Y% E# ]9 a; L3 [" \5 ]#include <linux/leds.h>+ `" k5 q8 U" \' ^4 z
#include <linux/platform_device.h>0 v3 \7 O$ |. Q  B
* P+ j  s7 s& w3 M
#include <asm/mach-types.h>& U. U) k5 e4 K7 w9 D
#include <asm/mach/arch.h># S1 O3 }* j( O2 R7 i: w
#include <mach/da8xx.h>, N; S- B  C5 j9 M/ v+ n
#include <mach/mux.h>
9 h9 Z4 @9 x) b* E, }3 ^2 b- B
% `1 `) M; D: h1 w  {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! ?+ Q, `  S% A
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 X5 ^# ^( b4 [# D: W: I+ S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* E6 x7 P4 x; V# ~% l2 {! Y* O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 T3 Y7 ?' B0 r  t; O, I  S
' D3 Y. V# [% C+ a/* assign the tl som board LED-GPIOs*/
, U2 p, l& u( G( Q* e9 lstatic const short da850_evm_tl_user_led_pins[] = {6 p  t7 p6 k* L; O6 M, y
        /* These pins are definition at <mach/mux.h> file */  |9 D8 a' i9 C4 \$ ?# R
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% j) D$ @, A  O  l9 E3 D# x        -1
9 [/ F+ j- o/ V+ R% W! F};
- _8 q  w6 l$ j; e7 M# w% q1 H) F: n% b8 s# W) ^
static struct gpio_led da850_evm_tl_leds[] = {
7 N: K% j- T. a5 J        {4 ?, Q  e6 H8 V  g
                .active_low = 0,3 u8 h0 r5 q3 {) n9 X
                .gpio = DA850_USER_LED0,
, `" E. Q. s$ |, [7 |% F: Y                .name = "user_led0",% G$ B- M) ~; }4 k! f
                .default_trigger = "default-on",
  `0 M/ X, f/ [) U% Z        },8 B- L( H# V/ p) _4 B1 I+ i
        {
' S. [0 k" }* Q  u: J                .active_low = 0,
) n0 O" E0 K+ x, N: @                .gpio = DA850_USER_LED1,4 ^7 S1 K; I9 B, \+ Y% \: H
                .name = "user_led1",) ^) J4 `6 @; p9 Y4 U* r9 ]. |  U
                .default_trigger = "default-on",& A& t: U0 _  o/ c9 A
        },+ }" b. s& k4 G4 g$ S$ h" L
        {
. ?" G7 Y$ x! J9 ]                .active_low = 0,8 h' ~2 b/ |# `6 o! l" {
                .gpio = DA850_USER_LED2,( p1 E8 V3 O0 K$ D
                .name = "user_led2",
1 v; S5 ]- J8 Q( `: y+ y                .default_trigger = "default-on",+ _# n- ~( i; p! g6 X' I" @
        },: g0 r+ z3 a: V: h
        {
$ Q% F  h: |% ~3 W8 g. g                .active_low = 0,
! Q' _& T1 H; `8 R2 F( o$ v                .gpio = DA850_USER_LED3,
9 Y# y0 `) W* e  I                .name = "user_led3",, `# `. n: U' o' `0 t
                .default_trigger = "default-on",
2 `* n; j; k. N/ i6 P        },
3 B# {9 Y4 x* t( ^! k7 R" q};) l% i5 @" C7 A( `) d

* B3 B6 A$ N: M* }8 ?  @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 Q% L& D5 @2 b+ @5 s0 K- C' E        .leds = da850_evm_tl_leds,
" g, y% t8 {$ c/ L3 d  W7 X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- {: }; r  O0 @/ e# r# [  g
};. [2 J+ s9 Z) \) l3 I# Z: M
$ z0 W( L4 U% ?( r. ^  ?
static void led_dev_release(struct device *dev)
% \: `- `+ U% s; w* D5 f{+ q- k5 G+ A: T& u0 C' ?# n8 e
};
& |1 X! U6 s2 u3 g2 Y+ L- r) |7 a1 Z  F( Q6 S/ Q+ \- h9 o: j
static struct platform_device da850_evm_tl_leds_device = {: t& ?+ W3 h7 p7 d! Y
        .name                = "leds-gpio",
+ ^# t2 J7 ]8 \2 D: _        .id                = 1,  \7 K. K7 w6 F
        .dev = {
' n- l( F/ V6 L# ]# L/ @                .platform_data = &da850_evm_tl_leds_pdata,2 G7 K/ V" n7 s' a& f: U, z
                .release = led_dev_release,- A: T" e$ r9 R6 P- Z2 |% S$ S) K
        }
4 A+ s, k6 D" A- I};
+ F: O" c0 |' c4 B4 D
4 L8 E" X  ?& @- b6 Sstatic int __init led_platform_init(void)
" R0 v: f# r! M6 C9 E4 v{
; k1 |  i! K- e3 w: f. C        int ret;& v6 J* l- @1 i9 x' |3 X
#if 0& p/ P7 F/ G4 T8 {+ Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 A3 n( R$ L2 p& e% W7 _4 s
        if (ret)9 E8 [2 x$ E1 z& b  |/ v  c0 Z4 Q$ R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! q+ }0 w, |" R+ q( h# Z4 b                                "%d\n", ret);" f  _' J' @7 ^9 s5 D
#endif
) y8 t# o" l  U% W9 n/ i: u        ret = platform_device_register(&da850_evm_tl_leds_device);$ n, \2 j. M6 s& j
        if (ret)
# `4 X& t( h2 b                pr_warning("Could not register som GPIO expander LEDS");
6 ^/ \' G$ a- n; g# c/ c+ [: t  [) b        else0 V+ [1 Y% s1 W0 |
                printk(KERN_INFO "LED register sucessful!\n");
; r# b5 ~5 O# `$ E5 q9 ]. l* X5 ~" F; f  j+ B! x% h- O
        return ret;
- q( [; z) \6 {1 ]. e+ p/ F  z}0 g0 E! v" d$ {
9 D+ |1 y. S- {4 @! J
static void __exit led_platform_exit(void)3 ?& L8 \+ F, g6 ~
{7 V4 ^3 w: H; s
        platform_device_unregister(&da850_evm_tl_leds_device);5 ^: l% j- L8 ?% Y
7 I* L. W6 c5 L4 J$ L: I
        printk(KERN_INFO "LED unregister!\n");
$ n/ i% D1 o4 W% R4 W}4 y4 b; T; K5 o, H/ E
' y1 d" s8 \& G+ {4 E
module_init(led_platform_init);6 o, v. J3 B+ w; u& ^* w- y
module_exit(led_platform_exit);
& Z5 H0 l6 [- O: Y3 e8 |9 Y
; C0 `, f7 P3 gMODULE_DESCRIPTION("Led platform driver");$ h, d  A7 v' V- k$ i
MODULE_AUTHOR("Tronlong");- [- E* E5 Z2 X# @* H
MODULE_LICENSE("GPL");; H- U( G: v* P- T! z0 p6 C# r
- z2 W2 |2 c* |* W; }: E( M1 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-16 20:51 , Processed in 0.039752 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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