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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 Z9 R% K- D$ f9 B#include <linux/init.h># X2 Q' @* M! f+ L
#include <linux/module.h>
7 ?# l7 Y, R: X! G2 T; v#include <linux/kernel.h>
6 x" x4 w& ?6 S#include <linux/types.h>! v! v5 D# r' K% Y/ h* M
#include <linux/gpio.h>* M6 S) }; v( D$ B- A' Q
#include <linux/leds.h>6 N5 z9 O9 }: J
#include <linux/platform_device.h>
" H. K) ]: n! U; e# i+ p. y! d& S0 v4 K
#include <asm/mach-types.h>1 m# ~# a6 R) U
#include <asm/mach/arch.h>
8 j) u9 o2 Z1 W* Z' M4 U* `' J, e#include <mach/da8xx.h>% G2 h( U& m- N% m4 l7 x  |
#include <mach/mux.h>8 L8 @) `7 g7 _2 T# J" a" {4 u. m

0 s7 T$ _& P* X  z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 {7 h+ n0 o3 E0 P#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; u3 B1 {! J% O- ^0 _#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 [6 R6 K& {1 L% `& M$ Y" b1 n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; @" X" M( Z  r( D# w% O6 @7 h8 W0 E1 E7 A% p: Q
/* assign the tl som board LED-GPIOs*/$ g8 T; X( x- c# q' ]4 p: U) A
static const short da850_evm_tl_user_led_pins[] = {' w' C) h) K8 f9 a
        /* These pins are definition at <mach/mux.h> file */
/ ^$ D) O% E9 A8 n" C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
3 {+ s, u; v+ w/ H3 N2 W        -1
- P: Y' {/ c% e# M) |};0 |7 ]: Y1 u( g! M* U* n# n. A

/ f4 m: P, M. ?7 D; Y) Sstatic struct gpio_led da850_evm_tl_leds[] = {) N" `2 A0 T! ^, G2 X, k1 m6 x
        {
  K1 T8 e! t9 b                .active_low = 0,- w8 M) U7 v$ W- t5 d( }9 R, C
                .gpio = DA850_USER_LED0,
) J: q& K1 Z! v! i5 ^& G8 Z                .name = "user_led0",
# h5 G0 g2 ^% w3 Y2 {" @* @                .default_trigger = "default-on",
3 z% _( Z  s# X0 s        },
9 B9 s, ]/ F9 G& `/ x5 y" q        {6 t9 c' i2 x$ d+ o
                .active_low = 0,/ q6 L* ~1 L3 a  M: M; m. _
                .gpio = DA850_USER_LED1,
. E( S+ O% U: h- U                .name = "user_led1",
1 k0 v2 g. {* W) @: O3 m                .default_trigger = "default-on",
+ _2 K. u( B( Y! g* x        },
! \( d) l+ Z/ `2 N' j2 K% n, v  M        {
+ C0 D$ r) X' M! z( f                .active_low = 0,* o! G, Y4 n9 N% b
                .gpio = DA850_USER_LED2,, G; o. Z# i# C, e: Y2 ]& C
                .name = "user_led2",/ T, M3 c( O' P: `
                .default_trigger = "default-on",9 `' d# H: o. b" |/ R$ B2 y
        },( d- }2 D- t4 Z/ v7 h& m
        {
, h) C6 b& E, E% W                .active_low = 0,
) u/ M) S% e+ _! P! `7 \0 v) W. ~8 G: a                .gpio = DA850_USER_LED3,
' k8 K! f2 V! v* ]                .name = "user_led3",
/ o. f0 O, }% _4 z                .default_trigger = "default-on",1 ^/ i: R* D2 V. Z4 t
        },
- l# l7 o- m* {};
" ~! t' C* |5 }6 N$ b0 F% s7 d) D
$ I5 b3 i1 |$ {' g! g  ~% {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" Q: y! l; @- Y! z3 a        .leds = da850_evm_tl_leds,8 X' C4 Z0 k6 i
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- s# N0 r" x0 i
};+ Z) L1 ]0 S2 F
: t6 U5 ^, |" f
static void led_dev_release(struct device *dev)9 V3 a7 v& X0 q8 K3 u) Q; }8 M
{
$ q% Y; \9 ^8 ~4 b};5 f7 t  o  l+ o
  d+ \5 E. p( Q8 u9 u* J: Q! c
static struct platform_device da850_evm_tl_leds_device = {! V7 E( Q- Y3 K( ?
        .name                = "leds-gpio",
8 x% f( r! W, O1 k        .id                = 1,
8 ^4 C1 J6 l$ u& a3 C8 ?5 g        .dev = {
# ~$ e' A9 `: ^( D' b/ L5 m                .platform_data = &da850_evm_tl_leds_pdata,
+ [$ H3 V9 R  L% `7 C                .release = led_dev_release,
: q% {4 [3 G% U2 P5 I        }3 R5 w8 U" Y5 B0 Y/ [
};
* ^' z0 s, F9 i$ `. J6 R# o+ V
. q. q6 G' e$ m1 n+ W! k: Ystatic int __init led_platform_init(void)
( L+ N3 b& c: g: B{' v* z2 c! _+ K1 e% Y# n
        int ret;
  A- k2 X6 _% h- a$ m0 m#if 0$ ?4 s7 c& D+ E" @
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: @7 P9 A" b5 x9 M        if (ret)
5 f' d6 R& z$ j. J3 Z# C( b                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  z8 d( @8 q2 y, z9 f5 q' m
                                "%d\n", ret);
' v3 U* {, j* u8 x* @#endif2 g7 n& R5 v! H% j$ j3 [
        ret = platform_device_register(&da850_evm_tl_leds_device);
0 Z4 {3 u% a/ L1 ^        if (ret)" c3 j# G& J, O0 A8 t1 U: Z) L
                pr_warning("Could not register som GPIO expander LEDS");
0 S; S) h0 }  j' [  {+ W) \" u+ M        else) [  p) E: P8 Z/ P
                printk(KERN_INFO "LED register sucessful!\n");
. v: R, Y) k9 H, D* O, ^' R. l- i7 r+ m- B
        return ret;
0 P; ]( C' J+ `# ^. H& S0 k}
1 x5 C5 l% E1 `: B) B2 [. G5 T. c! o$ e) M! `+ ~0 C
static void __exit led_platform_exit(void)
- |6 S8 j: E9 u' @5 u! {{
, [# V* k+ H& w. a        platform_device_unregister(&da850_evm_tl_leds_device);
3 R, S, i4 q+ e! q9 v1 ~/ V8 e# j8 x: b& O
        printk(KERN_INFO "LED unregister!\n");
, Z/ r) }" v9 a* s' G$ D* z3 ]$ O}
7 h) ], U2 A' m) Z0 P, Y; V0 ^' v+ ~3 ]3 Y+ g6 X6 m
module_init(led_platform_init);
6 Q+ i+ B& y* v& Smodule_exit(led_platform_exit);0 D4 r, Y+ h* w

9 u$ J9 G2 r7 y8 X8 H6 [5 {+ XMODULE_DESCRIPTION("Led platform driver");
1 P3 g: _, W% O' b0 \MODULE_AUTHOR("Tronlong");6 u4 e& q- J( a6 n
MODULE_LICENSE("GPL");
9 ^% `3 x7 j8 J2 O( s- @0 o1 k* R8 h& l6 h" C0 v9 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-16 22:26 , Processed in 0.041087 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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