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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& t: D5 w5 {0 d# w* ^
#include <linux/init.h>
  B; O9 ?8 q' i2 r) }! a#include <linux/module.h>$ o  X' a* m7 b8 p
#include <linux/kernel.h>8 m: M) k/ F$ {) R
#include <linux/types.h>, N; n7 z* D8 m0 p3 d6 S& K/ e1 f
#include <linux/gpio.h>1 ~8 g1 N' @6 [1 D9 E! o+ z9 `
#include <linux/leds.h>2 M& t. R9 U; ~1 _3 ?+ d) z; Y
#include <linux/platform_device.h>
( z5 _% g9 w! w4 l- {4 I: ?+ T  k+ L# `& w1 Z1 ?- h
#include <asm/mach-types.h>2 d0 D6 I- P; ^% e7 Y! `2 R' a
#include <asm/mach/arch.h>
3 E( Q) V! @1 F3 @* M#include <mach/da8xx.h>
# f7 T: d) y8 B4 c( R2 u& T$ x#include <mach/mux.h>
+ F/ A7 X2 f# q$ w0 D; [' b5 a1 c7 }* r' s$ |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 Q2 i0 s) [$ o% C3 |5 v# X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), Z& s# K  ]- o+ M8 {& u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# W$ E1 u! T, n7 k0 |6 v#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ ~' [. R% C6 B8 r4 W' X2 t/ K9 M* I3 {( m/ p& I
/* assign the tl som board LED-GPIOs*/$ y+ m( w6 Y+ C
static const short da850_evm_tl_user_led_pins[] = {
" J2 |+ t  [! |1 g        /* These pins are definition at <mach/mux.h> file */
3 i& w# `) n& P9 U! w  U% w+ U) l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; q+ I7 n. A! x5 K) Q2 x+ Z5 C
        -1
. k) v- J5 I. s2 E5 p};4 f, `  ^2 m- R4 W+ q, N
# l5 v0 p/ Q9 X2 Y, Y
static struct gpio_led da850_evm_tl_leds[] = {2 k$ t" R+ u: P2 m3 m; Y, E
        {* ]6 n; F% e. S' I
                .active_low = 0,
; U6 Y) ]5 e0 w' `* x                .gpio = DA850_USER_LED0,( _9 P9 N8 U& @- l1 @) A" Y  J
                .name = "user_led0",
2 r* ]. j2 \- Q& C1 I7 U+ Z* h                .default_trigger = "default-on",
' s. Q7 r: N" v# g$ Z        },
+ A4 p9 q* `- P8 l; I        {
6 G6 j8 X: o& N$ w' L4 m                .active_low = 0,0 t/ Z- C) g* N; Q; P: p
                .gpio = DA850_USER_LED1,+ o( t* p! M$ |
                .name = "user_led1",, C, b& b: r  Q' J1 T: U
                .default_trigger = "default-on",& h, k$ J6 V& h3 P  H8 g
        },
4 q7 E5 K$ g5 G2 `; n# S        {9 _- M2 ?; p: j0 S. ?$ o% H
                .active_low = 0,
1 T5 q3 j3 T" X- m                .gpio = DA850_USER_LED2,
9 ^0 G2 L+ `: \' \5 B& m7 e                .name = "user_led2",
' E% V* s9 f& N% e9 A0 x+ L! X                .default_trigger = "default-on",
1 n( Y% `& Q& C* @0 {        },
! m: {* M5 |( |( E        {* }0 @2 i; ^. w3 U
                .active_low = 0,  B- n+ f" j5 A
                .gpio = DA850_USER_LED3,  `. Z$ q' A  a& r( m1 q
                .name = "user_led3",
% W; s& ], [3 S; A3 Z5 ^: n6 p1 d                .default_trigger = "default-on",: b8 \2 R: ~! J. E" M) V; G
        },. e2 M" M2 @0 t& v4 ~
};0 H$ K( g3 N- S! v! s* [4 l
% s9 K" G# K! {8 Y# {$ ]" U- {/ L4 Q  x
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 {# T# B' X0 G* r3 v4 E( n        .leds = da850_evm_tl_leds,
" J- A' o1 J8 d/ y" |5 b6 q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' K8 ]& N/ V2 R- C' D7 ]};
% }- g" u; X& o9 i$ b
3 g8 F5 s  z0 C0 {3 I% @$ b! Rstatic void led_dev_release(struct device *dev)
: R1 v6 i' P; Q. M{
2 X) i$ Z% \; ]3 K, N( Y};# F# @3 d7 j5 v1 l7 `& Z1 a
0 r: U+ ?. B$ f) ?+ z
static struct platform_device da850_evm_tl_leds_device = {/ l5 ~4 _# h6 ]9 o
        .name                = "leds-gpio",2 C, D& \: a' G
        .id                = 1,+ t' O" ?; {4 s1 ~
        .dev = {
1 X+ n7 R' e( G) b% L* v                .platform_data = &da850_evm_tl_leds_pdata,8 B9 W* t1 Z3 y$ U( ^' B
                .release = led_dev_release,3 D% _# I! k% b* t& r
        }
; Z8 @" q9 K/ S1 W};
7 D9 M4 L5 @: z* _8 e* s
+ m2 p" _- K2 e2 A/ _static int __init led_platform_init(void), z9 G. k7 c- Q3 Q( s* ~' n' J
{
# o4 Y3 E. r7 F7 c7 X: D( o; Z- J" t        int ret;
( U8 E5 p' f3 m7 p#if 0
: c' e+ ?" x9 a        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' M! P0 _+ A+ I7 Y        if (ret)
6 [1 f6 {2 h; k: H% o                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") X# m( L6 z& ]2 B
                                "%d\n", ret);" D( V7 q1 F& H5 m" t
#endif0 m7 p$ j% ^5 k& N
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 J- Q* ^% A$ f5 E# W8 ]/ s. m# v2 [  r        if (ret)# F" F9 S; J1 f% W# `9 |: H6 s: b
                pr_warning("Could not register som GPIO expander LEDS");
8 x, }$ v- v9 r; L4 o5 a2 V* p! r        else
4 S( j& j4 q2 d! D                printk(KERN_INFO "LED register sucessful!\n");
) O" n( E% X/ @8 n) [! C8 l5 D0 V2 M, I
        return ret;- d( N+ V: L1 J& l: }% D5 z
}4 ~  e+ e8 w6 l' }; `0 X8 z$ e  I  X

% h+ u4 G; p! F/ y2 zstatic void __exit led_platform_exit(void)$ A2 j5 ?) |3 [, Z/ s6 ^+ a9 ]
{
( {. ]* E) ^: O/ Q# k* ^1 ~        platform_device_unregister(&da850_evm_tl_leds_device);
$ N% ~+ m8 A: }+ v  v+ g8 f7 ^9 [( C8 C9 \3 c
        printk(KERN_INFO "LED unregister!\n");
- r% ]1 q. Z3 V- Z}
/ d& _! `* W& g: m/ ~1 p
$ j% [; S, [% f7 z" O# Jmodule_init(led_platform_init);
  U3 |5 ^! I3 p( H- Umodule_exit(led_platform_exit);
" G' l2 S# R( x$ w; }/ d1 z7 D% B# \
7 j) K. a& Q% k3 }( m. [- dMODULE_DESCRIPTION("Led platform driver");
5 B% b* p& m: KMODULE_AUTHOR("Tronlong");3 C5 ?" D1 Q: Q5 x1 w+ J  ?
MODULE_LICENSE("GPL");1 J; \# D- f, F' L
% |# I  X+ [& P0 _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 17:13 , Processed in 0.040209 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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