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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* \1 \4 {3 N. J; [- [# E#include <linux/init.h>% I& H  R- y5 ?, z( B
#include <linux/module.h>
$ F4 v, ~+ M  u: Q#include <linux/kernel.h>" x6 y3 U+ W5 v/ A. F/ q
#include <linux/types.h>
4 V$ v& z. \& j) }  u7 e#include <linux/gpio.h>
$ v, o5 h9 |6 R#include <linux/leds.h>
' j/ s/ ^" ^- o3 J1 j% x. V. H$ C#include <linux/platform_device.h>% D7 {- n9 i! K

/ l1 L* F1 t" V$ d#include <asm/mach-types.h>
  |5 ?6 S+ N/ k$ M#include <asm/mach/arch.h>/ p) W/ a* N2 m0 F# |$ L' u# n
#include <mach/da8xx.h>
$ Q  T/ d! C9 _" Y  j4 ?#include <mach/mux.h>' V/ D  Q7 W: M3 W# W
& s$ U9 V7 W( N# u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! z) B, A' r! F* ]: H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ p/ X) v# v: m/ W- D$ `#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ l6 V/ k0 L" ~. l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 r9 G; I; t, }0 r0 E  R
8 @1 _; U/ @+ `1 Z) i: h/* assign the tl som board LED-GPIOs*/8 n! e. H3 e( R! ?% O$ `
static const short da850_evm_tl_user_led_pins[] = {5 S; V3 r, \; L& c- ~) E+ e
        /* These pins are definition at <mach/mux.h> file */
* d- R, O, O! P, [; k8 i# J: u7 s        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 _9 a# n8 C; k+ J& ]' M  R        -1
+ R/ L3 g, V/ y" U+ F& q};
% Z7 @( Y' o' w+ O0 e/ z  k4 O* z7 ]4 K: a2 O
static struct gpio_led da850_evm_tl_leds[] = {5 P4 r* R- u' y
        {- _6 @( @) H( n
                .active_low = 0,
& j4 G, e0 x1 p& }                .gpio = DA850_USER_LED0,
' Y# E4 ^( {8 q; v  ?6 x3 f6 u                .name = "user_led0",
7 V- ~# _* z* u; R: Y9 b                .default_trigger = "default-on",# }2 w* R: d: R) b2 c9 ^; M/ Z
        },
  p( k( O3 B& f7 m8 F        {! p9 }* [: A0 Q" J" E/ r# Z
                .active_low = 0,% ]7 W& X+ B/ U" P1 l% X1 }
                .gpio = DA850_USER_LED1,
' O! X' w4 h1 N                .name = "user_led1",$ W$ U- y7 Q" \- I) h7 a, O
                .default_trigger = "default-on",7 v( U  v, c2 Z- W5 H
        },9 H, H1 P8 q/ I8 F+ m! i& z
        {
5 k6 `2 q# @! |  C+ G$ u                .active_low = 0,' w0 `. k) n" Y
                .gpio = DA850_USER_LED2,
$ P" |+ A$ q  y% d4 A. w                .name = "user_led2",
5 O2 c3 s% E+ d6 |1 c  ^                .default_trigger = "default-on",  w- {* U1 d: b. b/ X( e
        },: d3 S; L' j; u# z. l# N
        {
$ H% m& j- I. K& ~+ j0 C$ t$ n1 X3 _                .active_low = 0," n$ J6 T: F" B
                .gpio = DA850_USER_LED3,
3 M+ W) f3 A+ z  ^$ Q                .name = "user_led3",
3 P  d2 N/ Q( y7 }2 e                .default_trigger = "default-on",
8 y: r; p9 |' {( m# Z. _0 v        },
+ u5 y, g( Z, B$ A5 N" U};3 r, }/ y% F1 _2 g( z9 ?

: P( s4 h' G  N0 x0 `3 ~2 vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& ^& m2 o+ F5 E- ?7 h- J7 z) I
        .leds = da850_evm_tl_leds,
) i/ N, G' K. P. I1 Q2 a        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  w$ q  x; `& c$ G# d. [
};
" Z2 q  r* ?0 m' T9 I& ^! Y# Q, e& g/ z/ a* j2 E1 n6 W) V3 Z
static void led_dev_release(struct device *dev)
5 Y& H& ~4 J0 v{5 ?/ ^4 S1 E7 U  M" q) h8 w
};
* R( o# s& W9 {0 q/ G
2 H; b' a6 V' ]+ }" |0 q4 Ostatic struct platform_device da850_evm_tl_leds_device = {
+ e& R4 s! Q1 G1 N) w        .name                = "leds-gpio",
2 j/ ?/ A: M+ |+ E9 N/ L        .id                = 1,
! C: z% K  h: h6 }' ~* y        .dev = {
/ W, L) l  l- {                .platform_data = &da850_evm_tl_leds_pdata,
' d+ p+ m/ f( M  f; H                .release = led_dev_release,
8 x) {, {4 t, ?: H6 Y0 P) h        }
# j, D( I# j  w- X7 H4 }};# u4 p$ ]% s, w$ D  J

* b9 M3 c9 b. G( ]2 O% ^static int __init led_platform_init(void)
: H/ K! t( }9 @! {6 t{
: y3 `7 L+ ^# \        int ret;5 B3 \$ H6 q& O% `: r" i  B. v
#if 0
3 s/ X# |! l4 X, W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ [3 f* `( N: r: K7 u( e+ H        if (ret)
' e* F* t9 ^4 x$ R+ j1 g; a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' \- ^$ K5 @% T" {- ?                                "%d\n", ret);
- I" Q- l5 u+ E& X1 |#endif
/ p8 n9 u- W" z        ret = platform_device_register(&da850_evm_tl_leds_device);
% J, l- p6 I. I( p        if (ret)
  z) j5 |7 s/ i3 h9 i2 o6 C) c                pr_warning("Could not register som GPIO expander LEDS");/ d' [1 Q6 P* Q4 V9 k' b' e
        else- F4 t, U$ a. H. q, J
                printk(KERN_INFO "LED register sucessful!\n");
" e- Y1 H- u) ~& b1 U3 x, n/ J6 h6 m. u0 `9 m  w
        return ret;
/ T: q: n, p7 O' }4 n}
( V9 {. ?3 b1 z/ d7 z/ u
) V, z2 l1 R# ]static void __exit led_platform_exit(void)% ~* n* `$ |5 {( _' j; Z: u3 ^
{
+ g  B9 Z0 p2 |& ~# t$ ]0 O        platform_device_unregister(&da850_evm_tl_leds_device);
1 n7 }/ M3 v  \
" R- Y: B% \- Y  k" U# U4 Q        printk(KERN_INFO "LED unregister!\n");
) t. @4 ~( t: k9 r+ t}! v+ ?$ O0 s# V& `* t1 F7 z, a
! X4 J( _* J7 H
module_init(led_platform_init);
) |) F# H( E) M" F+ W# w! Umodule_exit(led_platform_exit);  m& L, Z( z+ `, P
6 r/ b4 F/ B+ `) _
MODULE_DESCRIPTION("Led platform driver");
* K8 j% ^# H3 R! L' |MODULE_AUTHOR("Tronlong");+ Y6 y7 g% n0 T# H! z  f9 O+ y, G
MODULE_LICENSE("GPL");2 t( u8 {# p8 c2 v% ~& u5 x
! v; k6 j$ o' ]! W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-22 11:06 , Processed in 0.041489 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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