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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 h# T7 ^( N5 K$ N' _#include <linux/init.h>: D; S, j. S. o+ v
#include <linux/module.h>
$ D- h: J9 W2 ]" d9 }( _4 @#include <linux/kernel.h>) |: g$ z- s3 ^8 {1 ~& ?
#include <linux/types.h>
8 Z, c" V0 T6 U* o7 ]  Y" \#include <linux/gpio.h>
' ?. m8 F' A" l: z3 d# I& @3 m* V#include <linux/leds.h>1 S2 j2 j/ Y9 e# e! A
#include <linux/platform_device.h>0 ~$ N* Q: b! }+ O; G9 D

4 |) T  d8 @# p#include <asm/mach-types.h>
4 ?# y, L+ C) l% d' S#include <asm/mach/arch.h>
  d' d' q- ?/ E/ r& `#include <mach/da8xx.h>6 W, P0 `5 Y+ ~( S
#include <mach/mux.h>
( ?7 ~) {+ v7 `+ Z% p, y! t' I, G" G! \% y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 a7 _% E4 e$ L" a4 Z; {- X#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' W3 u/ f& t3 z# _) |2 a5 |#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 K( \3 r6 W1 X; }#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! m1 W) K# d" S+ p/ ?
2 H) K# [3 A6 w- g: ]" y. Z/* assign the tl som board LED-GPIOs*/
) t# G6 t( a+ h: S2 T2 ^static const short da850_evm_tl_user_led_pins[] = {
+ v$ t) }' n, |, v        /* These pins are definition at <mach/mux.h> file */" z- E1 ?/ k* F" z6 r7 v) }; Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; ^/ m; G, b4 l/ |6 W        -1) n9 Q+ u4 b) }% ~9 F
};
/ ]' s, J+ n7 v1 |4 Z( G, u0 s* ~4 G) A& Y2 h3 \2 e. H
static struct gpio_led da850_evm_tl_leds[] = {& [7 K! x: W5 o9 _
        {
6 `4 ^& x7 j1 D+ r                .active_low = 0," b' S3 q4 G" g' Q( i3 p
                .gpio = DA850_USER_LED0,  T8 D; \. C" y9 w5 C: f
                .name = "user_led0",
  l5 k3 w& H0 s+ e& h' ~                .default_trigger = "default-on",7 ^, H+ A9 [# \
        },
: b5 Q4 F3 x3 p. H" Y" k        {! n3 v* }0 g9 O1 }4 F
                .active_low = 0,
, Q* k. @2 z& G; z1 r                .gpio = DA850_USER_LED1,- s3 V% Z! e! K! t3 _& j3 V
                .name = "user_led1",
2 u0 @/ W9 n7 v7 M. t, }5 V                .default_trigger = "default-on",
/ l6 {. W; U+ i7 S2 i- B' S7 |4 c        },
  t8 q; Q: v) O. Z6 s1 Y. l        {, T  d& q; e8 x2 z( \( \
                .active_low = 0,( j# A$ t$ v0 f- P/ Y( e
                .gpio = DA850_USER_LED2,
8 U( X, B9 c7 \" @3 i: O                .name = "user_led2",
. L& u" C2 n* w5 a+ d                .default_trigger = "default-on",0 ]' T( N1 N0 f/ V6 J& k
        },
5 Z: J- W. C0 k  S% s* `# W% q/ O        {
3 V6 m* n4 |1 W6 g                .active_low = 0,
# D" N( o5 S! G1 C2 Z                .gpio = DA850_USER_LED3,
9 [5 f1 [" J1 f                .name = "user_led3",  k# Q& a% P9 A1 e" K. [. ~0 h: y
                .default_trigger = "default-on",
* M) {- |0 N2 }/ {8 Q        },, F  J' f5 s8 E/ e
};: o( {1 O! [9 @2 F2 `
- f) U! s( R# w$ [, C6 r
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 H9 K( _; t  }, ^9 G        .leds = da850_evm_tl_leds,/ y, P  L$ e2 I  q4 A" Q0 u
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ K+ V, n& B" s- C
};! \3 N7 D9 O$ z. G: s; ]3 x2 e
, ^5 M$ A2 @) d3 M% L) r2 _4 x- C
static void led_dev_release(struct device *dev)6 B# F8 H( {  u- f
{7 L0 B8 Y$ {7 E5 @% B8 Q" d
};6 O8 x$ r1 V: X& q$ ?  d
- V9 F. V8 [8 i1 \& A+ ?
static struct platform_device da850_evm_tl_leds_device = {# L% |. G9 T6 G2 s, e( a/ m8 n
        .name                = "leds-gpio",. k( d5 g8 T3 ]& k( ]+ T3 b3 b
        .id                = 1,
" a$ p9 X: x, E1 Y        .dev = {
* D7 ]& E! z  U. ~                .platform_data = &da850_evm_tl_leds_pdata,
- X* z5 r0 s; `% f5 i: f& ~: h! c6 E                .release = led_dev_release,! \+ x: {( B% I+ l: B
        }
2 i1 E# N# d  `2 V};
- Z: v5 Y3 s) \8 w/ [* j+ F8 l$ M/ o* ?7 |: k/ z
static int __init led_platform_init(void)
* t$ F1 X$ e) k4 I$ P+ x{/ n7 {0 B4 o) W, X; Q
        int ret;
3 ~0 k* _9 d# j+ V9 d: N! {& s#if 0% Z8 O( j/ g- b* U5 K7 t9 ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% u  g7 l) ~4 Q4 K& I+ @
        if (ret)
# z- U% v# U/ Z: l  D6 O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# h2 n& W' r! A# g( X' G+ z3 K3 z2 C
                                "%d\n", ret);5 G- h, V3 D. U' R7 h
#endif
$ G- n  z, T& `" N% U) a        ret = platform_device_register(&da850_evm_tl_leds_device);
' |2 _( W- Q2 Y6 x        if (ret): C6 \1 X! k; l, H# }- _! l9 s
                pr_warning("Could not register som GPIO expander LEDS");
! s4 |7 |! D) {' L: r3 ]; {        else  W7 ~( W! A! ^: v. n" z
                printk(KERN_INFO "LED register sucessful!\n");" X! J3 \- k* x2 o- a; t

/ ?3 L. y. W1 C/ A$ N3 q        return ret;
5 g+ V9 j7 j# ?& T/ F! f2 P7 {}
+ c% C, v' `" j
+ K5 D$ J! |6 h4 j0 E- d2 Astatic void __exit led_platform_exit(void): i+ ?- v5 H. [# J0 U$ b; T
{
1 o* s9 {0 X% z( {1 \% m0 H; s        platform_device_unregister(&da850_evm_tl_leds_device);
5 F- y: p( a: E) s" a# x: r
& |" [5 ^" H1 i7 V- o        printk(KERN_INFO "LED unregister!\n");
; |: l6 K+ |* q& \+ r- T2 r}$ k' H# Y, i9 o2 R! H& |9 ]
& c2 b# D7 \/ i1 W
module_init(led_platform_init);* m* ^' z6 ~9 q  j7 v
module_exit(led_platform_exit);6 W- ^, }; _& B: R

0 I5 @- g1 e' ^. MMODULE_DESCRIPTION("Led platform driver");
  ?3 m8 R- |0 Y+ tMODULE_AUTHOR("Tronlong");9 M* d7 b" q/ w
MODULE_LICENSE("GPL");
* `# H+ d; m' h) L5 b- w3 S3 }1 y0 I+ y! w" B# r, c& ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 22:08 , Processed in 0.038518 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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