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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 S# C5 s+ N0 V& Z9 r' o0 A
#include <linux/init.h>
) k+ m; m$ T; m+ j#include <linux/module.h>
& I  H- @; C: P1 @0 z#include <linux/kernel.h>) Y% Y# E* k5 M/ C( Y* b/ ]6 g4 N' r
#include <linux/types.h>
+ f# a0 R2 U: U, a8 s1 ?) j9 I. b: ]#include <linux/gpio.h>
* r* R- s% U* a- d1 w- U0 H#include <linux/leds.h>! g  {. c- _3 H6 l
#include <linux/platform_device.h>
  i( X: O, O" e$ |# i
# h2 j  \6 l1 T: c#include <asm/mach-types.h>, v# V- O5 ^4 j4 ?5 m# j" Z9 ~8 T
#include <asm/mach/arch.h>" U7 F1 T/ }, U; U
#include <mach/da8xx.h>( [3 @/ p, X( l* Q9 n4 N, h
#include <mach/mux.h>3 d: R2 b% V% {: H

0 |; b, W; x% q2 m! H#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* y7 w* L) M' d; r% D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 y6 ~6 F. D- w. f  c#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) e0 c6 |+ {2 F9 s8 ~: |( d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 ^. o0 o( c$ _" Y; h& O5 n7 u8 F& ]+ `
/* assign the tl som board LED-GPIOs*/2 J* b( a% s, V. R& {3 O7 D
static const short da850_evm_tl_user_led_pins[] = {0 Y9 p( V' s% ~$ n/ M6 Q
        /* These pins are definition at <mach/mux.h> file */  X4 U6 V! M" F3 r! P; \0 n, \
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- R& G* k* F5 y# Q1 B- j
        -1
7 D  u7 T; i+ D4 _: v( m};( @; O. F! R1 Q- C8 w

( H6 E: K. y. X2 P, gstatic struct gpio_led da850_evm_tl_leds[] = {* k! ^! J, w0 X; w
        {
9 s7 I6 q4 X! t" S5 A. Q( J                .active_low = 0,* d0 i$ M. C, o. I1 y. H6 v
                .gpio = DA850_USER_LED0,( Z3 I1 p* M# x  m# S4 i: v& Q
                .name = "user_led0",) G$ n- {( \. D* j
                .default_trigger = "default-on",
( \- q5 a% G7 X; f7 x  e        },4 U) }4 k  F: D2 q* f
        {
) z  Z- {  R7 r& Q0 @7 ?                .active_low = 0,
0 x% k* U3 ~4 l4 e- @0 v1 U% z                .gpio = DA850_USER_LED1,
! S; g. p) D+ N' R+ s$ g6 L; B                .name = "user_led1",0 \: x0 r% Y' ?( y9 O
                .default_trigger = "default-on",, U2 l8 @$ [+ W2 T
        }," x  K3 p: G, F- S" ^' g
        {
& X# t+ [4 _$ Q" O, a                .active_low = 0,) x% U4 l& t2 b5 F& y
                .gpio = DA850_USER_LED2,6 w$ @) [8 D3 r2 u
                .name = "user_led2",
( r; K, D& d" x                .default_trigger = "default-on",
5 P" M/ ?. q5 ~        },
. H4 C4 j$ ]* T& B# @6 D        {
6 ~7 _2 Q  q( v) b' D0 Z7 y3 W                .active_low = 0,5 F$ e& O% t7 O8 V5 ^
                .gpio = DA850_USER_LED3,
7 k' r1 S- A/ ?. b& \                .name = "user_led3",. H7 X. J) b7 O  Y, E, V
                .default_trigger = "default-on",
; o/ k. \7 X0 [; m, F3 k8 O, {4 s: D        },
% _2 g4 q) _3 p( k4 o2 m9 s4 D. Y};$ U  u& b2 _! E: g

' q! Q6 O6 t' k" [5 T5 ?2 q. X! Y- hstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, F; q$ i$ |; Z: q        .leds = da850_evm_tl_leds,7 ^) @' P' b& X' _4 n1 V$ p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' G" w) o0 h( a0 y% r4 O
};* R# b& `# o3 n

  e; i' h3 _- O: ~  I( Estatic void led_dev_release(struct device *dev)8 q5 ]- W: w& p' I
{
2 O5 S1 ^5 r6 V0 N};1 `& J4 Y' q/ t7 j
% g* Y/ @3 ?: U
static struct platform_device da850_evm_tl_leds_device = {
3 Y9 M9 m( `! l/ F' c* j        .name                = "leds-gpio",+ \6 v4 d3 P/ R- b; y0 W
        .id                = 1,8 D$ Y- O4 A/ H+ p7 D9 C
        .dev = {
6 ?( ?+ l- m: A2 p7 i                .platform_data = &da850_evm_tl_leds_pdata,
' ?9 n" A# K. W7 |- S                .release = led_dev_release,
2 ]. S2 r0 z3 t        }
( _9 s% B# Q: b- _/ {5 |* K};
7 b; O, a  ~3 _$ `
/ p/ {3 C4 v* y' lstatic int __init led_platform_init(void)& J: y$ j9 \, H8 Z/ D6 j! _# O
{
' G% R) A& [6 x( H5 j        int ret;
0 R) M6 s. D! D#if 0; ?: U8 m& A1 U% I) I. v/ ~
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" F9 ^0 W. \, o+ h8 D
        if (ret)
$ I) K1 \7 l  J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% `: b& O  e5 a* F. ~                                "%d\n", ret);
& b  s. p" @2 q& f1 M- \* p* M- ?#endif
8 k4 v( M1 N1 O( h3 d        ret = platform_device_register(&da850_evm_tl_leds_device);( g. \# a' K& ?5 C$ d) z. D! y
        if (ret)$ F+ C# ~' ^" S8 B/ w2 c
                pr_warning("Could not register som GPIO expander LEDS");
; P# a6 p7 m. d. j8 g        else
5 N# @4 h) i( }+ a                printk(KERN_INFO "LED register sucessful!\n");
% h! G/ D8 a! L/ S- Y2 ]" P
# g$ V- y! v( Y$ q5 R        return ret;
# C7 c1 F. H( {7 S  v( ]}
- J. l( z& L* C- ^) x" Q, a4 X& j' x% L% U7 A9 u- g) l. w, y
static void __exit led_platform_exit(void)
$ k% G: t7 Q9 X5 }6 D. v% ^{' `3 c' G3 t- e& Q
        platform_device_unregister(&da850_evm_tl_leds_device);6 N+ z  p: i  S9 Q! x

  x0 p4 F! q% Z& S; F& ^) M- k        printk(KERN_INFO "LED unregister!\n");! r. ^- L3 Y# ]8 x- r( C, U
}- g; O; m* K  i  Z' I5 [
2 c% R  [" G4 }% E5 Q( B
module_init(led_platform_init);1 _! z) B6 ?. e- z  }
module_exit(led_platform_exit);
+ `4 P' O' Y- a, v
- K! x6 f7 s7 J6 ?: S  R* b( eMODULE_DESCRIPTION("Led platform driver");  w) ?, e/ X; K  \, F" {! F  E! W
MODULE_AUTHOR("Tronlong");
; f# A9 u* j0 `# j; GMODULE_LICENSE("GPL");$ ?; r7 `$ g  U' X3 H! X

4 X) r5 O8 e. |7 k  a! N6 }- O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-28 02:38 , Processed in 0.041162 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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