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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 Z8 ^) }% [, H0 K7 J7 F7 l' j' |
#include <linux/init.h>4 K3 z3 s3 p' j
#include <linux/module.h>
$ C4 a7 L3 A) ]  `+ ?4 W/ J5 i#include <linux/kernel.h>
/ w- f! d$ P" k5 u* l#include <linux/types.h>
8 B: _# S" m. R5 ?5 c& K  G#include <linux/gpio.h>4 q1 ~5 ]" ^) z! A5 l& ]
#include <linux/leds.h>" b5 Z0 K. x% m/ V' C  D* J$ ^) W
#include <linux/platform_device.h>( E& m+ e% E! n! H

; J  V, c' W8 H; B9 d  [$ h#include <asm/mach-types.h>) R& ?# w9 K* x) U7 B; i2 V
#include <asm/mach/arch.h>
( H/ r" X% B- v* g6 X4 H#include <mach/da8xx.h>
2 v2 ^/ x/ N! o6 f  H& L; ]#include <mach/mux.h>
) d1 [# ]- b! ?2 T  K' b& S, w: _6 G8 M5 E% M; g# N& c3 M( b! i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 c" m; G5 ?0 f4 g# y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' ]2 G4 s) Q6 y9 y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). }9 y: i0 E: X/ }$ L' D; i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' l# e# U  i7 F5 i2 ]" p  S7 i

  x+ w1 e* K! S- V2 c7 }4 O/* assign the tl som board LED-GPIOs*/
! m+ m2 N) j$ U: H$ ustatic const short da850_evm_tl_user_led_pins[] = {: E# R+ y/ \- i% n
        /* These pins are definition at <mach/mux.h> file */
/ Q$ Q4 [8 w, Z( T' N+ a& z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; i% I% {$ P3 V0 K
        -1
" C3 r1 {2 \) G. \0 \};
3 y2 C# H' X# e+ Z( J7 H0 G
- ~/ g3 ]. C3 F6 t! [  P2 rstatic struct gpio_led da850_evm_tl_leds[] = {0 y4 }3 A) ]# @
        {6 c1 g0 ]  {2 n2 s  N+ K
                .active_low = 0,1 p1 ^. v/ L0 p8 Y/ B. j
                .gpio = DA850_USER_LED0,0 r) ^4 H3 i8 w  s6 T* M
                .name = "user_led0",
  h' s  `) j" Y6 U                .default_trigger = "default-on",
1 H# y& P- Z" j& b+ V        },
% X9 M0 [, X5 m        {
0 }* O) _. Z2 `                .active_low = 0,
( U& A. Y- S$ Q. e  |; e' F                .gpio = DA850_USER_LED1,$ K1 t+ e  x% t! N
                .name = "user_led1",) v7 w  y/ M, q
                .default_trigger = "default-on",6 n& c; i$ D% Z5 u
        },: t( J: e0 x" \' y
        {6 E3 o$ Q% O% c! H
                .active_low = 0,
2 R0 ^7 \8 n* G( R+ ]# K                .gpio = DA850_USER_LED2,9 |& ~3 y( V4 V9 `5 q
                .name = "user_led2",
: ^7 W2 Y5 z$ ?$ R: e                .default_trigger = "default-on",
# s$ f' f( l2 d/ p# S        },/ R, A! V- n' `; s# ]$ W% W5 H
        {
. }/ `4 s: u1 a7 o) i                .active_low = 0,
8 ~' f) M& p0 ]                .gpio = DA850_USER_LED3,0 R* a% w$ D% E4 t  V  ?. `2 w2 R
                .name = "user_led3",& M% w7 c- C* y  l
                .default_trigger = "default-on",
- \3 A/ g" P; F6 B8 }$ n# @& I        },7 C, F/ f" F) ]2 d2 a
};
0 G' T% A4 S7 M1 X$ f: l8 e; w" O! Y* u$ T& a7 ^+ {3 j7 i
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' G! S) `5 l: S$ n1 M        .leds = da850_evm_tl_leds,. o  v9 N2 t6 j& O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) E( r7 a) Y# s1 K5 P* n
};
9 A6 A4 I2 O! J% V  G& R( E! k5 @! S% S0 G
static void led_dev_release(struct device *dev)# M: X. @* C/ H% I( `- A
{
4 M8 p8 p( P5 V# T+ F' Y};6 \, u5 U( q* d" E' V
$ @  H  |; \; u7 V9 x' f. Y! Q
static struct platform_device da850_evm_tl_leds_device = {
' ?6 G7 ?5 N) v4 ^        .name                = "leds-gpio",
' ?/ |( i. p% h) p& Z" l  w# f        .id                = 1,
( `- N4 ~2 U" I% n. \3 ]% m4 K, v        .dev = {
6 S1 U& q* ]1 W% S. ?                .platform_data = &da850_evm_tl_leds_pdata,
; U  B2 J$ l: D$ d5 ~                .release = led_dev_release,/ \* ?3 L# }+ d- `- [& U( P
        }
. y* v, H% A$ J# t2 H8 p+ D. }};
# v; y" [: `* J6 b3 Y  p2 \: h, H7 \2 u( w4 S  ?( m: X5 k1 f+ i8 O  \
static int __init led_platform_init(void), s5 V2 o# {  o' W& v  S" {% {' [
{: Y2 @. ^: V0 Z* d; P3 O  M
        int ret;
. {6 n. J+ m6 O1 c: V' j#if 0
' B1 Q. b4 C" G- V% L  T        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
9 m$ b, {  X6 T& b        if (ret)
: ]6 ?( N' N7 r, M2 i( g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! Q7 X0 T# k8 [8 o' A  {4 V) ?
                                "%d\n", ret);
2 H7 m: V0 l! n#endif* ]' g& Q8 `- P  P# F3 K) Z# l
        ret = platform_device_register(&da850_evm_tl_leds_device);7 U, q3 f# y0 G1 }3 G* {
        if (ret)
7 ?; ^2 |$ v: r+ U, v                pr_warning("Could not register som GPIO expander LEDS");7 e2 x+ G! }/ v3 }' k2 w& Y# l
        else
- s# J0 h1 h& q. `8 s                printk(KERN_INFO "LED register sucessful!\n");
4 @) y: L$ m/ y5 b5 n. H: q" U
$ S( O- A& b4 U. ]4 _        return ret;
* V7 Y7 ~- ^, N6 H" S( O! Y1 I}
( e: ?, N! ?) n; A& {) d, E1 D' h+ Y3 X  Q6 D( B+ R
static void __exit led_platform_exit(void); C+ H2 l& X; ]& H, S
{2 Z( i3 }* J3 y* N" \
        platform_device_unregister(&da850_evm_tl_leds_device);6 a3 ]- ~1 B) ^. ^
2 T$ a1 Q+ z6 m# y+ }
        printk(KERN_INFO "LED unregister!\n");
! [- ^" _2 B" {1 c$ F8 c5 g: [& i7 I}
3 c' w! R( K, X' @1 c; R& I1 K$ `2 X& S1 O" _
module_init(led_platform_init);- _3 R( R$ N+ D; y7 }7 W" M8 c7 D
module_exit(led_platform_exit);
. H( g+ n: _/ E2 S( _" l+ {% H' O. x) a: @. s
MODULE_DESCRIPTION("Led platform driver");. B" N: _1 r4 z8 ?+ N
MODULE_AUTHOR("Tronlong");0 U% C/ S* P& T- d; d7 _  h
MODULE_LICENSE("GPL");* Q3 d$ u5 m( ^3 S, c9 h

/ F  E" O0 G; u, k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-30 04:42 , Processed in 0.040907 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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