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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" i: Y& y1 M+ D  u0 |" {
#include <linux/init.h>" F( Q0 J3 M% f! @1 _& P
#include <linux/module.h>
; m" c8 T+ p1 h. i3 @#include <linux/kernel.h>
2 g& L7 a8 o9 a3 k+ y8 O#include <linux/types.h>
) E1 e% C  {) A" M3 s#include <linux/gpio.h>; i* M" A4 Y8 s, k8 `% @1 p; V: O( q* N: m
#include <linux/leds.h>
! J6 X8 L+ J) M% o+ b- V#include <linux/platform_device.h>" d0 T- w% r5 X# I1 Q

2 H) m: I$ \/ l$ v% V7 }#include <asm/mach-types.h>% W0 q1 K' }; \. k0 Y
#include <asm/mach/arch.h>
. T; v3 |* u; i$ g#include <mach/da8xx.h>
& e' q* x# q6 c#include <mach/mux.h>& n: h0 R/ W' B1 I0 T0 `9 ^

  O( R( _* ]8 d' T4 k5 ~; V#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 N6 N4 `. B, w5 K; M9 ]#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 T+ N8 T# `1 U
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ S2 @( R+ W. o; K+ a
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 W0 z" c! k2 D$ U) ?! a' F
4 g: ]% A+ h( e/ P7 H7 S/* assign the tl som board LED-GPIOs*/
% |( D: ]/ T8 [3 U0 w# bstatic const short da850_evm_tl_user_led_pins[] = {
" [; \9 f# s- I/ r        /* These pins are definition at <mach/mux.h> file */
; W& U4 d( X, d* L3 C, ^& p        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# ]. u- A) f% `* C5 z: Q
        -1
  [; E9 N" m9 a# A8 L( Q};
0 U& d0 K+ z: t. C4 @3 G0 y0 k' N) Q" w5 ?
static struct gpio_led da850_evm_tl_leds[] = {
: S& `9 Y. E/ h$ Z/ g3 I( o2 H        {. U0 v5 `5 U) k4 C8 g, k4 j
                .active_low = 0,
: i0 ~4 F4 Q7 `; b                .gpio = DA850_USER_LED0,
9 \% P# W2 [( o, o, S/ M                .name = "user_led0"," p, D2 K8 Z. }, B) ]( Z
                .default_trigger = "default-on",
6 J) ^9 a7 S; _9 R  i        },
( X/ M# E1 ]* e$ Y        {* `' g# D- `1 T
                .active_low = 0,+ o$ e: [+ `- c8 q  E3 G! Z
                .gpio = DA850_USER_LED1," h. l$ L* j% b7 s( s2 r' U
                .name = "user_led1",
5 j* [$ m" e8 ?& b                .default_trigger = "default-on",
% t! A2 h4 B: O1 K# Z: C# N1 r% Y; N        },
0 h* q, K/ j! G& i        {
5 v+ R* ~. H" t5 R% p4 t                .active_low = 0,
$ a. @  f& T2 _0 S1 O- T" S                .gpio = DA850_USER_LED2,
  A: F+ T/ U2 x! P5 l7 I5 T: Z                .name = "user_led2",9 z3 @/ T4 I2 J5 J' b4 @& g
                .default_trigger = "default-on",
6 d. A! U. L1 c7 `1 m( ]) l        },
6 G) ^. H1 A- ^( }. O9 d        {% K4 G/ V* |2 @3 Z" R( w
                .active_low = 0,
+ g' @4 C# [8 b  u1 f                .gpio = DA850_USER_LED3,
; I5 E, R% K: v1 y* j( i+ j                .name = "user_led3",
5 D  ?8 j' X& ]1 X! _2 O1 d                .default_trigger = "default-on",5 J( W! Z6 p- i' [( Z1 w/ b& f
        },7 v: S2 j7 g% u
};) B/ V/ o/ ~$ j2 O9 h  x* r

7 }1 O! {3 z" s* g) I2 z+ u7 sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 O9 \4 f7 @8 L# ^; L        .leds = da850_evm_tl_leds,* i$ f7 n: t- W# V
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( ?; N: @! b6 l1 N+ p
};
3 _) J% f6 r0 ~0 S* ~6 O- i/ X2 J3 A8 W5 v3 ]" r
static void led_dev_release(struct device *dev)& e- i" Z3 E5 i+ `' Z
{
% ?9 o: N3 T# G5 z2 @};
5 m% |% e) g( \2 y$ @* t( N+ T6 E  n: C7 R& Y$ T' G. f5 ^
static struct platform_device da850_evm_tl_leds_device = {% G6 s9 a# \/ |' O: O% C( n1 C
        .name                = "leds-gpio",6 U; W! A" ~+ q7 |  T( @
        .id                = 1,/ s, n2 n. f! l) C) i; \; W
        .dev = {) m4 {* ^$ t  C' n3 W. \- W
                .platform_data = &da850_evm_tl_leds_pdata,4 ?. H) |9 W7 W, y6 F) Y$ B
                .release = led_dev_release,. A' d) w" e: O' N( e
        }% I# t; j. O  @: U0 p
};, e" `- _& f$ ^. P2 h/ t

% d9 H/ t+ v$ _' ?6 |) ^9 X! Fstatic int __init led_platform_init(void)7 k/ p' n+ D" \( B. ~
{
$ \8 O7 U- C# Y" B# {        int ret;
$ x5 j/ S8 {5 Y- g- T9 S# m  @#if 0% o! W" H, S3 j; k
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- H6 C' ?( E1 v$ D+ |# p        if (ret)  C- e+ Q4 {& B4 f
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 p7 |5 Z; l' C) ~0 F  }2 }1 @
                                "%d\n", ret);
8 K+ \$ S" ?1 @+ f2 ^" O/ W/ J#endif, ?/ f9 D% r3 y  }
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 d. N2 D7 Q5 w5 ~        if (ret)
' [& l/ [3 N+ n$ y% ~( T4 g. i                pr_warning("Could not register som GPIO expander LEDS");# z* G+ ^# i4 A6 @+ n1 w
        else
# ]6 e6 j! `# X* o( \! f2 s                printk(KERN_INFO "LED register sucessful!\n");9 _2 \1 b; r( t3 e

) E( ~& [# f* A0 j5 K        return ret;
# @" q2 y  k0 f}; [5 O2 k3 J* P  r, v1 K
. v* T- c0 A( F. t2 z: a8 Q+ Q0 X6 u9 M
static void __exit led_platform_exit(void)1 b4 `% C6 N. v  p) l" }- M
{6 D/ ^; t, D  E- K; J
        platform_device_unregister(&da850_evm_tl_leds_device);
7 S) Q% j: j- ~# l7 K
2 j1 K" Y' `2 N0 B6 j        printk(KERN_INFO "LED unregister!\n");
+ g- y7 j! C7 [" k9 j( u! }4 b( s}- g& x; m/ n( d2 C) {- ~6 N% D0 G
7 j2 j( V6 P3 [2 a
module_init(led_platform_init);. t' m' e0 Y/ Q- O( i" q
module_exit(led_platform_exit);
& I( R! V" c4 {! D5 Z
3 s4 \- G' a& w( N; |! \MODULE_DESCRIPTION("Led platform driver");
/ _' R2 S! T0 o% K, DMODULE_AUTHOR("Tronlong");/ @" u3 i1 n, Y6 K6 z
MODULE_LICENSE("GPL");
7 Z+ m3 ~" f5 ]4 n! m& J6 K6 e: x9 r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-17 13:49 , Processed in 0.039403 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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