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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 w- m4 ^  ~+ N, Q4 L
#include <linux/init.h>
4 X& ?6 Z! ?# X3 V#include <linux/module.h>. a0 F! y0 v2 W0 _, n# ]5 S+ [
#include <linux/kernel.h>0 v+ ~. H0 Q& z* I
#include <linux/types.h>
$ M- h% _! Q' Z  @#include <linux/gpio.h>
( B9 h  _/ s1 O#include <linux/leds.h>0 `" V0 e6 Z/ Z
#include <linux/platform_device.h>! J, s) {* V; c& h

; C: p3 }& x: U$ f- r#include <asm/mach-types.h>  R1 R" O' f$ |2 G, S( Y/ E
#include <asm/mach/arch.h>( i! a9 g3 f% V3 i) z5 @
#include <mach/da8xx.h>
7 E' Z4 ?7 [. m/ r#include <mach/mux.h>
0 B0 I* l$ A6 B0 t% d
7 H' ]5 T& }, r! Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), F. |7 T9 q' k3 Q. h5 x! C
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 M% e8 x" L6 A$ q: l0 M( x, N' E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 D. f$ m# @2 c9 q, P$ A1 G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% `9 r+ h% ^! R! Q- X1 M* T

8 F! F6 d' |5 v. e; }* ^" h/* assign the tl som board LED-GPIOs*/
( |) w; I  v( h; r  istatic const short da850_evm_tl_user_led_pins[] = {
  O& ]" k& f( w- U' i1 J+ ^* x        /* These pins are definition at <mach/mux.h> file */
$ n3 p5 i' ^- e5 l- `% h        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- C4 x  T  n+ U6 C. W7 v2 w# O1 A2 O
        -1+ {" u; \9 J1 w+ o, U5 i2 y
};
; A/ v. `* \9 v  s+ y. M! h+ m+ ]
* t+ U' [0 r) R" ^static struct gpio_led da850_evm_tl_leds[] = {
6 x: b. G* ~, {- m. k, k+ o        {
/ J* u0 ?) ]& a: q/ M, `% D                .active_low = 0,
2 x3 }& C& z0 O                .gpio = DA850_USER_LED0,# M7 L7 q. S1 m% `  n+ D, e
                .name = "user_led0",
5 {) [0 u3 |( v5 g  F+ H* s                .default_trigger = "default-on",
* [  s( m! x# B9 d  N' H        },, b/ C$ B  P  u, e
        {2 w" J9 H# X* j# v0 j. M# b
                .active_low = 0,
/ {2 k! ^" y, \2 Y4 s( ^                .gpio = DA850_USER_LED1,
1 X6 R, G% V% r5 [$ k- z8 N                .name = "user_led1",% e. }0 `9 [) k$ |
                .default_trigger = "default-on",
( G: S5 n2 Q- q  o2 ~) v+ a        },
2 N: T$ \* w3 t1 @% I/ h        {; L8 `' V# v5 Q
                .active_low = 0,
: W/ S8 a4 h3 m% N                .gpio = DA850_USER_LED2,, m" Q/ U; L+ G2 g6 f4 v8 G+ R+ I
                .name = "user_led2",
, i! N8 m7 m( `/ e6 A                .default_trigger = "default-on",* }/ B# A- h6 P+ Y8 M1 l: ?
        },( z& u7 Z1 v. v6 i
        {
0 T0 K; {$ C2 a7 X/ U. q                .active_low = 0,
6 r" v' n- Q1 ~5 x                .gpio = DA850_USER_LED3,
5 C+ _8 ]+ O7 v$ s( m# H                .name = "user_led3",9 d' n! k8 @; g2 _9 x
                .default_trigger = "default-on",
% x3 [& o8 s- X        },
6 J0 Z! W2 t0 x2 u2 _4 P1 R};
* N, p5 S: ~* H' G5 c5 _+ ^# X1 ~* n% I! V- v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& P* [7 r' s  _3 ?3 a( K
        .leds = da850_evm_tl_leds,
% I) j+ C  b/ U. j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* x5 z0 H+ e3 D
};  J3 ~1 K% D9 k

; }6 r5 q4 I3 F  c! T" b. h# Fstatic void led_dev_release(struct device *dev)) j6 G; t7 P, d0 `8 k6 t/ Q0 K$ ]
{
& t3 M( \# ]; H};1 r8 d+ t6 ?! F2 r4 G2 i
- B6 L8 ?2 T1 S( R: f( d' w7 L8 ?4 ?
static struct platform_device da850_evm_tl_leds_device = {1 w5 \: O& y, u6 U/ E
        .name                = "leds-gpio",2 N. h$ b3 i) V# V" A
        .id                = 1,
8 z0 v' m3 e! Z, Y% f, ?7 ?        .dev = {- Z8 y8 K5 o- p: |9 o& c
                .platform_data = &da850_evm_tl_leds_pdata,; g: z5 F% C, \. }. y0 p) |
                .release = led_dev_release,  G3 `. {! o# s/ s% ~
        }
1 q. W1 d+ e) T" F% H};3 u5 x2 x4 q" R
. n4 Y  I; `% a" ~
static int __init led_platform_init(void)! |9 \1 n0 t6 z% M
{+ [# U. S3 @, v
        int ret;1 `2 Z! W) ]: E) l/ {7 `
#if 0! \, l5 w6 G  @
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 Z, f( e# M# F+ @. i1 W( k
        if (ret)
* D6 m/ [- c! w; L! ^5 e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; g# O- O) n' A: i5 ^4 i5 J  u                                "%d\n", ret);
' g! U$ e3 R) P' _( d4 {) z#endif6 f* b$ e" C6 X0 c
        ret = platform_device_register(&da850_evm_tl_leds_device);+ |) G3 Z: }4 o) \" b
        if (ret). M" f( N1 B! Q! V5 G( F
                pr_warning("Could not register som GPIO expander LEDS");/ z$ K9 [6 A' s- ]0 R' H1 h! k2 t( D
        else2 l7 }; g: b" f0 b1 B
                printk(KERN_INFO "LED register sucessful!\n");# B1 O/ u6 Q3 t" V% z8 E5 p* ~5 s
/ O" M2 x  j; r& C! ]; T
        return ret;
( ~  O" }# {/ e9 C4 O  `' ^- U}
# W( k4 ^$ j: N0 C* v# o1 U& Z8 q  T  B0 F0 _% G1 [
static void __exit led_platform_exit(void)
) z* u& d& ]0 I: \" z( d9 [{
0 r4 z9 ~3 j4 o6 ]' }        platform_device_unregister(&da850_evm_tl_leds_device);$ ^/ ?1 z5 M0 p* |% b

  L. d6 Z' r/ q3 y& N        printk(KERN_INFO "LED unregister!\n");5 x& a( y( P! n& W; a
}
) Y' S. \* u; Q# Y' F- X! ~' m# Y# q
module_init(led_platform_init);8 B  p( Q, s# Y1 F4 h+ E
module_exit(led_platform_exit);* v, |8 a( i- b9 ?

6 l, m+ n  {& ~* HMODULE_DESCRIPTION("Led platform driver");
. S; k% U) Q. Z& v& oMODULE_AUTHOR("Tronlong");7 M, z4 @+ x2 N- [3 ?/ ^% h8 w8 }
MODULE_LICENSE("GPL");  I2 X$ [6 I; f/ M2 ~8 J

8 e( }& R& U$ M" T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 17:12 , Processed in 0.039784 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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