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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 ^6 \" p% \% V9 q4 S
#include <linux/init.h>2 Q& E: w" K5 x8 C+ G
#include <linux/module.h>1 P4 R7 u3 \& L9 {$ E
#include <linux/kernel.h>! q3 m5 N! E4 D1 u/ P* }8 s1 y" R
#include <linux/types.h>" f+ l) ]- V- a8 |6 ?  }
#include <linux/gpio.h>
! R4 q! e: y* i6 ~8 {. {; v#include <linux/leds.h>
, ]# _; b. {/ y/ `2 Y: [; J#include <linux/platform_device.h>
; ~& `7 @/ X. \" i% J  s3 ]8 g3 Q7 U6 u! D/ y2 b: |
#include <asm/mach-types.h>( k4 W5 U) Z- s0 \* F
#include <asm/mach/arch.h>
1 M( G; L4 s) p#include <mach/da8xx.h>
( a, Y9 s5 t# H9 }7 W! ?2 t#include <mach/mux.h>( Y) x/ U0 L" Z9 y
) i* g( r7 _) V3 M) J$ r3 O6 b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, [1 W) K" p6 q! _0 g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' q5 [: [  K, l8 i/ o7 R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 D1 |3 l0 _8 V0 X& ~( X2 h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 q0 T1 {  [; I
; S# P; h4 j6 l: \; `
/* assign the tl som board LED-GPIOs*/
; B3 {- a* z5 W6 }4 y% Astatic const short da850_evm_tl_user_led_pins[] = {
" n( x. V' p. M' m7 q        /* These pins are definition at <mach/mux.h> file */
* }, L% a& w( q0 _3 }# U' l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 }* X. c2 \2 A7 X- {        -1/ d& ?- I) b* ?/ \
};
- V. s0 @7 g. m2 j# m$ H2 [' ~0 X' ]: ]$ ?/ t3 n) ~
static struct gpio_led da850_evm_tl_leds[] = {$ W) ?, L! ^5 p
        {
$ {. ]  N) l" k8 S3 u) I                .active_low = 0,
& J) Q3 o) R* H% ?8 W                .gpio = DA850_USER_LED0,
$ R4 O  }+ L" a2 z' D+ h; o. Q                .name = "user_led0",! I% W( k5 B, f
                .default_trigger = "default-on",
, j/ s, s6 p5 L' O) O        },
1 Z0 E  E  U" }3 S0 W6 A        {6 Y3 M. c* P# \! V0 k/ F
                .active_low = 0,
! [' ~$ F, U' x( @6 j  R) @" x                .gpio = DA850_USER_LED1,3 u+ P# s. _" O4 `' t2 y1 K
                .name = "user_led1",
: L9 l; f+ n  s$ O                .default_trigger = "default-on",; }0 M# b. V; n  A5 ?
        },+ l* U4 @' W! Y3 H" o$ c
        {
  g0 G" {3 _, b. P                .active_low = 0,
: Y. U  z  H* p0 o5 f( z( k. ]9 s# f                .gpio = DA850_USER_LED2,
# P! V/ o2 G& S% E1 {4 u6 w                .name = "user_led2",
) Z9 u4 E1 a/ J! X0 W                .default_trigger = "default-on",
: w3 y, M- o5 y. u' K0 A0 p        },
" W/ G& M4 E# ]1 b! V  D        {
4 U9 q: e; N) m. D  J, [                .active_low = 0,
% \+ d2 |6 r! ?                .gpio = DA850_USER_LED3,
9 b; ?' A0 o+ j3 ?9 a                .name = "user_led3",
- o5 o8 |; g# I3 \, m/ C% R                .default_trigger = "default-on",
# Q- d( E: @( p; k  i8 {1 H3 S        },
! i, }2 F% O7 P! g7 J};& ~2 S4 g3 |6 H6 ~$ s4 e2 }# P

5 W0 P. Z% H3 g% _0 P; ~5 ]static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 ]' T+ a+ P, G. ~& J% L9 R1 @  P        .leds = da850_evm_tl_leds,/ Z  T" a" r  i3 v3 z( v
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* p2 \/ O3 k9 Z: e5 z};0 ~4 l. x! X. m# k$ I
+ Y/ T* J0 M" x. K; h4 \
static void led_dev_release(struct device *dev)
2 S9 q* v" z# r) j( [; R{; R* P& x) Y7 u
};
& S% j6 [8 m% m% G. \4 x5 s0 L/ J: e$ }" ~! w
static struct platform_device da850_evm_tl_leds_device = {
# c* ~" r% x- h- H* V) X        .name                = "leds-gpio",
3 E& I/ o+ i/ Q& ~, C2 _/ @. I8 I1 E        .id                = 1,
4 b! Q4 a# v; {: a0 H7 S! v7 s  }        .dev = {8 a1 {7 E2 x% G7 }4 n
                .platform_data = &da850_evm_tl_leds_pdata,
* g! {1 D7 k: o3 ^6 S                .release = led_dev_release,; u4 R! ^; z/ r! E2 I8 I
        }
: i8 N( J* b8 @; @# y};3 J$ I! B7 ~" Q

. U! o5 I1 u3 E, O4 }static int __init led_platform_init(void)
& z6 Z! ]* c8 A4 L{6 _5 U, z2 o- U6 H/ K! ~4 I
        int ret;) ?5 l1 x4 m4 L8 F0 c% q
#if 0
/ k8 Z6 w% X1 W* L. j        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);/ K3 C* a* y1 ~
        if (ret)" s* y7 s$ u  H; p  K( x5 f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 z5 T1 [& [3 U5 _6 ]                                "%d\n", ret);8 p; y" u  ~, X- J/ a5 c
#endif  o; b, I6 g$ j$ O" X$ x
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 I( d! F3 _- S2 m; B. Q2 }+ w        if (ret)
/ B. g+ q1 `' v                pr_warning("Could not register som GPIO expander LEDS");
; g# o3 l6 n4 c  t+ t9 x        else
- n- d4 D* E+ l* P" Y* g, H                printk(KERN_INFO "LED register sucessful!\n");# p) c4 Q; X% J6 j  s% U% L

( a1 z; b3 T. O0 ]        return ret;
- F' f4 b9 a5 _( G& |- G* z}# R& E) M: M% F, s
8 Q$ l' i- i6 r% }
static void __exit led_platform_exit(void)3 d+ u' L% {3 Y7 r! I
{
5 K4 t0 K  U' ^8 N, }        platform_device_unregister(&da850_evm_tl_leds_device);
: \( m1 W" r( E& k
+ R# I- E3 d: T( }8 P1 `        printk(KERN_INFO "LED unregister!\n");
" Z/ H% F' [" V4 p# e# f}/ h& n- i9 n. [& `  V; j6 j; h8 a& y
" O" B( A0 ], K
module_init(led_platform_init);8 @0 A, F4 `8 m: \' e
module_exit(led_platform_exit);
+ j/ B5 d9 m. \) o- U1 _$ W  z0 ]4 [! \5 Z0 j* ?
MODULE_DESCRIPTION("Led platform driver");5 p5 F$ v2 d" x& M
MODULE_AUTHOR("Tronlong");: l3 T8 @! Q" E4 Z
MODULE_LICENSE("GPL");
5 M& @) s/ c1 e1 J" k' f: {) V) y& C+ u0 Z; _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-25 16:59 , Processed in 0.040596 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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