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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 P! H9 u6 L7 P6 `& @' t! _5 B/ W  @* t#include <linux/init.h>7 N* N7 O/ n6 e' N& I" h6 E  L
#include <linux/module.h>
  n  F2 U- v( H: @. W#include <linux/kernel.h>4 ^0 A2 E: L4 `2 K
#include <linux/types.h>
- b. b! w% Y8 N, u& E#include <linux/gpio.h>. ?9 D4 Y6 U' M; a% Y& q
#include <linux/leds.h>
, Z! ?: W' ?9 K( l8 @5 I#include <linux/platform_device.h>9 G/ e  n9 }2 z+ r' l

( i7 q2 p& {/ Y#include <asm/mach-types.h>6 O5 C* z  L5 g  z' Q
#include <asm/mach/arch.h>
& G# e1 y: Z$ R# y#include <mach/da8xx.h>5 x* v, U2 [7 t" r5 U' I# {
#include <mach/mux.h>' g$ F- C/ C# Z" A" n0 q
/ s" J( x2 P* S5 K& n: h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 y5 l: z) U0 A# r' l9 S. ]2 Z* a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 Y/ B8 F  ^7 E  q, ]4 d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ Q1 m' y. }& b$ v9 c* U#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ n* I: T) ]* N1 O0 k: [

* p6 L$ b" n8 ]' ]/* assign the tl som board LED-GPIOs*/
7 z3 P6 A" Y. h6 mstatic const short da850_evm_tl_user_led_pins[] = {
+ Q8 O7 ]$ O3 h        /* These pins are definition at <mach/mux.h> file */
3 n' s6 h. v" h. o, o        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 C& H% z9 \+ E        -1
3 t# q& k- i  {2 B+ Z& X};; e8 ^# Y" A6 W% ]. e/ G" T0 O9 @

6 D1 \7 S9 x7 O6 \static struct gpio_led da850_evm_tl_leds[] = {
) B" E$ L9 L/ Q- [; J, m        {4 `5 O5 m6 B) W  A& q/ _3 ^; t
                .active_low = 0,( h" A+ K& a- l6 K7 R( P# `
                .gpio = DA850_USER_LED0,
: n5 m) U1 p1 M                .name = "user_led0",
; z* t' N+ Q/ A1 u! y                .default_trigger = "default-on",  `8 S: T9 @+ k7 J6 B$ i' q
        },
4 r/ V  ]& ~. k        {+ j( z8 X5 v. t: ~
                .active_low = 0,5 J, T# ^7 U* ?8 y* a" T
                .gpio = DA850_USER_LED1,0 p: i! k2 w  {! E! l; o: H+ q
                .name = "user_led1",
1 r6 @; A, r7 ^                .default_trigger = "default-on",& o( P6 k( L0 I6 a& o7 k7 c% @
        },. j5 j* M  J9 O2 N7 d: M
        {
7 q! z# c) i9 p; P- T% J                .active_low = 0,
9 E% o" G' Q* A1 u                .gpio = DA850_USER_LED2,
' J, e- r5 a- j% _* g/ q                .name = "user_led2",
' ^% J. U  t. {8 F: y6 z1 X                .default_trigger = "default-on",
0 d4 X: \2 Q4 {1 W0 t        },5 X3 o$ [) E7 o; M8 _' B
        {1 H2 _9 y4 Z: m. }) C3 c2 d8 E
                .active_low = 0,4 J1 T; F8 ~; c; ^
                .gpio = DA850_USER_LED3,3 H8 r. |6 R. g/ I  F' P$ Q- O0 I
                .name = "user_led3",& C  n: x3 @9 q* e8 C0 X
                .default_trigger = "default-on",. ?0 }3 Z0 v# t2 O) I# I; Z
        },
7 m* N+ C4 n2 M, m};0 q! Q7 l6 @, p: \3 @! K, G
! ^- h4 R4 X3 @( D; V4 D8 e# ^
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 w) [" }; ]+ `4 A" ^2 ]4 |        .leds = da850_evm_tl_leds,
6 d2 W' `+ L3 C) Z. Z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ H" w  P* y$ Z1 Q};. n: D2 M( b2 d( E
+ w5 I) [& m# ?* d% c
static void led_dev_release(struct device *dev)1 I  r1 z# V% Q7 {  p; ^4 ]# G0 ^) u
{
. b6 O9 ^: L6 O};% L8 M9 m1 @0 p1 |8 d0 ~2 ]! u
, b" j. J. E5 G$ x6 w; k' C3 ?/ R
static struct platform_device da850_evm_tl_leds_device = {
6 Z5 o( n/ J& O6 h" i        .name                = "leds-gpio",* {7 {. g' e4 J+ @' I- x
        .id                = 1,; w* |& n  l( |9 R8 `' u
        .dev = {; @  r2 s0 C; e4 p; I
                .platform_data = &da850_evm_tl_leds_pdata,
' J0 h# E3 g2 a# z) h: b                .release = led_dev_release,9 Z( P; ~5 L9 z  p
        }
2 u% S/ d0 u" M& Q  A};
2 l5 H; V$ w4 V5 X3 K2 k* f" ^4 I7 p2 X1 v. O( m9 @8 G
static int __init led_platform_init(void)
( C( L6 N4 j6 h% Q{. I$ E+ `" m% }/ G9 I9 X& C* z( b
        int ret;
3 k# `$ W- s$ b4 P- J- E#if 0
8 K& g0 t$ E- t5 P& K# W0 Y+ ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 E: J, z( Z' g
        if (ret)
. v/ W: T0 F% Q# |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ N; z1 @; B( t, |& v9 |7 b+ `9 {- h- c                                "%d\n", ret);0 `. c0 l6 c5 D1 |' y: M0 ^
#endif
* ]2 m; |3 p4 c% v; ?        ret = platform_device_register(&da850_evm_tl_leds_device);5 S( I& s3 D% ~* t2 p5 h
        if (ret)
8 A/ \3 D& K# o! \                pr_warning("Could not register som GPIO expander LEDS");5 j# \* x; C2 v7 b
        else
( e& h4 g3 `' _; c% |1 J3 b- Z                printk(KERN_INFO "LED register sucessful!\n");
' \. A- ]# W6 n3 d
, J! F+ ?. _; L1 _        return ret;7 z, c' J$ r/ v2 z! {2 a3 I/ c1 w
}
8 n' Z2 b, x( G/ R. [# V. Y) [7 J0 S6 o$ g
static void __exit led_platform_exit(void)5 O% m5 ?) Y3 Q% K3 Z0 m
{
1 X/ {# N. j7 n4 h, c" O. ^' v5 _$ p        platform_device_unregister(&da850_evm_tl_leds_device);) L7 k- z4 E* s8 F
. [  W+ i1 ?0 B
        printk(KERN_INFO "LED unregister!\n");6 k/ M2 J) H- k9 b4 A0 U/ h
}
; ^& N  q6 X9 N& P3 O2 t0 [3 {' {: ~" [0 p( G4 \9 t4 v
module_init(led_platform_init);
- C4 W& p6 d$ h0 g7 }$ lmodule_exit(led_platform_exit);
$ g* Z8 f3 p# D# f6 W# [% y, n0 J, X/ p( ~
MODULE_DESCRIPTION("Led platform driver");
3 |; U3 T6 e$ u3 J: z% vMODULE_AUTHOR("Tronlong");
9 `; `9 n. N9 J" oMODULE_LICENSE("GPL");
+ u' s% h& W# u% m4 t1 T' ]: [4 X& C* _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 18:53 , Processed in 0.039568 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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